diff --git a/k8s/operator-console/base/console-deployment.yaml b/k8s/operator-console/base/console-deployment.yaml
index 9e6efe494..8a29ad908 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.18.1'
+ image: 'minio/console:v0.19.0'
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 dc07d2e9b..8c782b5fb 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.18.1'
+ image: 'minio/console:v0.19.0'
imagePullPolicy: "IfNotPresent"
env:
- name: CONSOLE_MINIO_SERVER
diff --git a/operatorapi/operations/operator_api/delete_m_p_integration.go b/operatorapi/operations/operator_api/delete_m_p_integration.go
deleted file mode 100644
index d0332e59c..000000000
--- a/operatorapi/operations/operator_api/delete_m_p_integration.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the generate command
-
-import (
- "net/http"
-
- "github.com/go-openapi/runtime/middleware"
-
- "github.com/minio/console/models"
-)
-
-// DeleteMPIntegrationHandlerFunc turns a function with the right signature into a delete m p integration handler
-type DeleteMPIntegrationHandlerFunc func(DeleteMPIntegrationParams, *models.Principal) middleware.Responder
-
-// Handle executing the request and returning a response
-func (fn DeleteMPIntegrationHandlerFunc) Handle(params DeleteMPIntegrationParams, principal *models.Principal) middleware.Responder {
- return fn(params, principal)
-}
-
-// DeleteMPIntegrationHandler interface for that can handle valid delete m p integration params
-type DeleteMPIntegrationHandler interface {
- Handle(DeleteMPIntegrationParams, *models.Principal) middleware.Responder
-}
-
-// NewDeleteMPIntegration creates a new http.Handler for the delete m p integration operation
-func NewDeleteMPIntegration(ctx *middleware.Context, handler DeleteMPIntegrationHandler) *DeleteMPIntegration {
- return &DeleteMPIntegration{Context: ctx, Handler: handler}
-}
-
-/* DeleteMPIntegration swagger:route DELETE /mp-integration OperatorAPI deleteMPIntegration
-
-Delete email registered for marketplace integration
-
-*/
-type DeleteMPIntegration struct {
- Context *middleware.Context
- Handler DeleteMPIntegrationHandler
-}
-
-func (o *DeleteMPIntegration) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
- route, rCtx, _ := o.Context.RouteInfo(r)
- if rCtx != nil {
- *r = *rCtx
- }
- var Params = NewDeleteMPIntegrationParams()
- uprinc, aCtx, err := o.Context.Authorize(r, route)
- if err != nil {
- o.Context.Respond(rw, r, route.Produces, route, err)
- return
- }
- if aCtx != nil {
- *r = *aCtx
- }
- var principal *models.Principal
- if uprinc != nil {
- principal = uprinc.(*models.Principal) // this is really a models.Principal, I promise
- }
-
- if err := o.Context.BindValidRequest(r, route, &Params); err != nil { // bind params
- o.Context.Respond(rw, r, route.Produces, route, err)
- return
- }
-
- res := o.Handler.Handle(Params, principal) // actually handle the request
- o.Context.Respond(rw, r, route.Produces, route, res)
-
-}
diff --git a/operatorapi/operations/operator_api/delete_m_p_integration_parameters.go b/operatorapi/operations/operator_api/delete_m_p_integration_parameters.go
deleted file mode 100644
index 1ba65e9cb..000000000
--- a/operatorapi/operations/operator_api/delete_m_p_integration_parameters.go
+++ /dev/null
@@ -1,63 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the swagger generate command
-
-import (
- "net/http"
-
- "github.com/go-openapi/errors"
- "github.com/go-openapi/runtime/middleware"
-)
-
-// NewDeleteMPIntegrationParams creates a new DeleteMPIntegrationParams object
-//
-// There are no default values defined in the spec.
-func NewDeleteMPIntegrationParams() DeleteMPIntegrationParams {
-
- return DeleteMPIntegrationParams{}
-}
-
-// DeleteMPIntegrationParams contains all the bound params for the delete m p integration operation
-// typically these are obtained from a http.Request
-//
-// swagger:parameters DeleteMPIntegration
-type DeleteMPIntegrationParams struct {
-
- // HTTP Request Object
- HTTPRequest *http.Request `json:"-"`
-}
-
-// BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface
-// for simple values it will use straight method calls.
-//
-// To ensure default values, the struct must have been initialized with NewDeleteMPIntegrationParams() beforehand.
-func (o *DeleteMPIntegrationParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error {
- var res []error
-
- o.HTTPRequest = r
-
- if len(res) > 0 {
- return errors.CompositeValidationError(res...)
- }
- return nil
-}
diff --git a/operatorapi/operations/operator_api/delete_m_p_integration_responses.go b/operatorapi/operations/operator_api/delete_m_p_integration_responses.go
deleted file mode 100644
index e25a447f9..000000000
--- a/operatorapi/operations/operator_api/delete_m_p_integration_responses.go
+++ /dev/null
@@ -1,113 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the swagger generate command
-
-import (
- "net/http"
-
- "github.com/go-openapi/runtime"
-
- "github.com/minio/console/models"
-)
-
-// DeleteMPIntegrationNoContentCode is the HTTP code returned for type DeleteMPIntegrationNoContent
-const DeleteMPIntegrationNoContentCode int = 204
-
-/*DeleteMPIntegrationNoContent A successful response.
-
-swagger:response deleteMPIntegrationNoContent
-*/
-type DeleteMPIntegrationNoContent struct {
-}
-
-// NewDeleteMPIntegrationNoContent creates DeleteMPIntegrationNoContent with default headers values
-func NewDeleteMPIntegrationNoContent() *DeleteMPIntegrationNoContent {
-
- return &DeleteMPIntegrationNoContent{}
-}
-
-// WriteResponse to the client
-func (o *DeleteMPIntegrationNoContent) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) {
-
- rw.Header().Del(runtime.HeaderContentType) //Remove Content-Type on empty responses
-
- rw.WriteHeader(204)
-}
-
-/*DeleteMPIntegrationDefault Generic error response.
-
-swagger:response deleteMPIntegrationDefault
-*/
-type DeleteMPIntegrationDefault struct {
- _statusCode int
-
- /*
- In: Body
- */
- Payload *models.Error `json:"body,omitempty"`
-}
-
-// NewDeleteMPIntegrationDefault creates DeleteMPIntegrationDefault with default headers values
-func NewDeleteMPIntegrationDefault(code int) *DeleteMPIntegrationDefault {
- if code <= 0 {
- code = 500
- }
-
- return &DeleteMPIntegrationDefault{
- _statusCode: code,
- }
-}
-
-// WithStatusCode adds the status to the delete m p integration default response
-func (o *DeleteMPIntegrationDefault) WithStatusCode(code int) *DeleteMPIntegrationDefault {
- o._statusCode = code
- return o
-}
-
-// SetStatusCode sets the status to the delete m p integration default response
-func (o *DeleteMPIntegrationDefault) SetStatusCode(code int) {
- o._statusCode = code
-}
-
-// WithPayload adds the payload to the delete m p integration default response
-func (o *DeleteMPIntegrationDefault) WithPayload(payload *models.Error) *DeleteMPIntegrationDefault {
- o.Payload = payload
- return o
-}
-
-// SetPayload sets the payload to the delete m p integration default response
-func (o *DeleteMPIntegrationDefault) SetPayload(payload *models.Error) {
- o.Payload = payload
-}
-
-// WriteResponse to the client
-func (o *DeleteMPIntegrationDefault) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) {
-
- rw.WriteHeader(o._statusCode)
- if o.Payload != nil {
- payload := o.Payload
- if err := producer.Produce(rw, payload); err != nil {
- panic(err) // let the recovery middleware deal with this
- }
- }
-}
diff --git a/operatorapi/operations/operator_api/delete_m_p_integration_urlbuilder.go b/operatorapi/operations/operator_api/delete_m_p_integration_urlbuilder.go
deleted file mode 100644
index 8b5688b54..000000000
--- a/operatorapi/operations/operator_api/delete_m_p_integration_urlbuilder.go
+++ /dev/null
@@ -1,104 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the generate command
-
-import (
- "errors"
- "net/url"
- golangswaggerpaths "path"
-)
-
-// DeleteMPIntegrationURL generates an URL for the delete m p integration operation
-type DeleteMPIntegrationURL struct {
- _basePath string
-}
-
-// WithBasePath sets the base path for this url builder, only required when it's different from the
-// base path specified in the swagger spec.
-// When the value of the base path is an empty string
-func (o *DeleteMPIntegrationURL) WithBasePath(bp string) *DeleteMPIntegrationURL {
- o.SetBasePath(bp)
- return o
-}
-
-// SetBasePath sets the base path for this url builder, only required when it's different from the
-// base path specified in the swagger spec.
-// When the value of the base path is an empty string
-func (o *DeleteMPIntegrationURL) SetBasePath(bp string) {
- o._basePath = bp
-}
-
-// Build a url path and query string
-func (o *DeleteMPIntegrationURL) Build() (*url.URL, error) {
- var _result url.URL
-
- var _path = "/mp-integration"
-
- _basePath := o._basePath
- if _basePath == "" {
- _basePath = "/api/v1"
- }
- _result.Path = golangswaggerpaths.Join(_basePath, _path)
-
- return &_result, nil
-}
-
-// Must is a helper function to panic when the url builder returns an error
-func (o *DeleteMPIntegrationURL) Must(u *url.URL, err error) *url.URL {
- if err != nil {
- panic(err)
- }
- if u == nil {
- panic("url can't be nil")
- }
- return u
-}
-
-// String returns the string representation of the path with query string
-func (o *DeleteMPIntegrationURL) String() string {
- return o.Must(o.Build()).String()
-}
-
-// BuildFull builds a full url with scheme, host, path and query string
-func (o *DeleteMPIntegrationURL) BuildFull(scheme, host string) (*url.URL, error) {
- if scheme == "" {
- return nil, errors.New("scheme is required for a full url on DeleteMPIntegrationURL")
- }
- if host == "" {
- return nil, errors.New("host is required for a full url on DeleteMPIntegrationURL")
- }
-
- base, err := o.Build()
- if err != nil {
- return nil, err
- }
-
- base.Scheme = scheme
- base.Host = host
- return base, nil
-}
-
-// StringFull returns the string representation of a complete url
-func (o *DeleteMPIntegrationURL) StringFull(scheme, host string) string {
- return o.Must(o.BuildFull(scheme, host)).String()
-}
diff --git a/operatorapi/operations/operator_api/patch_m_p_integration.go b/operatorapi/operations/operator_api/patch_m_p_integration.go
deleted file mode 100644
index a1aca74ba..000000000
--- a/operatorapi/operations/operator_api/patch_m_p_integration.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the generate command
-
-import (
- "net/http"
-
- "github.com/go-openapi/runtime/middleware"
-
- "github.com/minio/console/models"
-)
-
-// PatchMPIntegrationHandlerFunc turns a function with the right signature into a patch m p integration handler
-type PatchMPIntegrationHandlerFunc func(PatchMPIntegrationParams, *models.Principal) middleware.Responder
-
-// Handle executing the request and returning a response
-func (fn PatchMPIntegrationHandlerFunc) Handle(params PatchMPIntegrationParams, principal *models.Principal) middleware.Responder {
- return fn(params, principal)
-}
-
-// PatchMPIntegrationHandler interface for that can handle valid patch m p integration params
-type PatchMPIntegrationHandler interface {
- Handle(PatchMPIntegrationParams, *models.Principal) middleware.Responder
-}
-
-// NewPatchMPIntegration creates a new http.Handler for the patch m p integration operation
-func NewPatchMPIntegration(ctx *middleware.Context, handler PatchMPIntegrationHandler) *PatchMPIntegration {
- return &PatchMPIntegration{Context: ctx, Handler: handler}
-}
-
-/* PatchMPIntegration swagger:route PATCH /mp-integration OperatorAPI patchMPIntegration
-
-Update email registered for marketplace integration
-
-*/
-type PatchMPIntegration struct {
- Context *middleware.Context
- Handler PatchMPIntegrationHandler
-}
-
-func (o *PatchMPIntegration) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
- route, rCtx, _ := o.Context.RouteInfo(r)
- if rCtx != nil {
- *r = *rCtx
- }
- var Params = NewPatchMPIntegrationParams()
- uprinc, aCtx, err := o.Context.Authorize(r, route)
- if err != nil {
- o.Context.Respond(rw, r, route.Produces, route, err)
- return
- }
- if aCtx != nil {
- *r = *aCtx
- }
- var principal *models.Principal
- if uprinc != nil {
- principal = uprinc.(*models.Principal) // this is really a models.Principal, I promise
- }
-
- if err := o.Context.BindValidRequest(r, route, &Params); err != nil { // bind params
- o.Context.Respond(rw, r, route.Produces, route, err)
- return
- }
-
- res := o.Handler.Handle(Params, principal) // actually handle the request
- o.Context.Respond(rw, r, route.Produces, route, res)
-
-}
diff --git a/operatorapi/operations/operator_api/patch_m_p_integration_parameters.go b/operatorapi/operations/operator_api/patch_m_p_integration_parameters.go
deleted file mode 100644
index 842ec28a2..000000000
--- a/operatorapi/operations/operator_api/patch_m_p_integration_parameters.go
+++ /dev/null
@@ -1,102 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the swagger generate command
-
-import (
- "context"
- "io"
- "net/http"
-
- "github.com/go-openapi/errors"
- "github.com/go-openapi/runtime"
- "github.com/go-openapi/runtime/middleware"
- "github.com/go-openapi/validate"
-
- "github.com/minio/console/models"
-)
-
-// NewPatchMPIntegrationParams creates a new PatchMPIntegrationParams object
-//
-// There are no default values defined in the spec.
-func NewPatchMPIntegrationParams() PatchMPIntegrationParams {
-
- return PatchMPIntegrationParams{}
-}
-
-// PatchMPIntegrationParams contains all the bound params for the patch m p integration operation
-// typically these are obtained from a http.Request
-//
-// swagger:parameters PatchMPIntegration
-type PatchMPIntegrationParams struct {
-
- // HTTP Request Object
- HTTPRequest *http.Request `json:"-"`
-
- /*
- Required: true
- In: body
- */
- Body *models.MpIntegration
-}
-
-// BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface
-// for simple values it will use straight method calls.
-//
-// To ensure default values, the struct must have been initialized with NewPatchMPIntegrationParams() beforehand.
-func (o *PatchMPIntegrationParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error {
- var res []error
-
- o.HTTPRequest = r
-
- if runtime.HasBody(r) {
- defer r.Body.Close()
- var body models.MpIntegration
- if err := route.Consumer.Consume(r.Body, &body); err != nil {
- if err == io.EOF {
- res = append(res, errors.Required("body", "body", ""))
- } else {
- res = append(res, errors.NewParseError("body", "body", "", err))
- }
- } else {
- // validate body object
- if err := body.Validate(route.Formats); err != nil {
- res = append(res, err)
- }
-
- ctx := validate.WithOperationRequest(context.Background())
- if err := body.ContextValidate(ctx, route.Formats); err != nil {
- res = append(res, err)
- }
-
- if len(res) == 0 {
- o.Body = &body
- }
- }
- } else {
- res = append(res, errors.Required("body", "body", ""))
- }
- if len(res) > 0 {
- return errors.CompositeValidationError(res...)
- }
- return nil
-}
diff --git a/operatorapi/operations/operator_api/patch_m_p_integration_responses.go b/operatorapi/operations/operator_api/patch_m_p_integration_responses.go
deleted file mode 100644
index 00a0df519..000000000
--- a/operatorapi/operations/operator_api/patch_m_p_integration_responses.go
+++ /dev/null
@@ -1,113 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the swagger generate command
-
-import (
- "net/http"
-
- "github.com/go-openapi/runtime"
-
- "github.com/minio/console/models"
-)
-
-// PatchMPIntegrationOKCode is the HTTP code returned for type PatchMPIntegrationOK
-const PatchMPIntegrationOKCode int = 200
-
-/*PatchMPIntegrationOK A successful response.
-
-swagger:response patchMPIntegrationOK
-*/
-type PatchMPIntegrationOK struct {
-}
-
-// NewPatchMPIntegrationOK creates PatchMPIntegrationOK with default headers values
-func NewPatchMPIntegrationOK() *PatchMPIntegrationOK {
-
- return &PatchMPIntegrationOK{}
-}
-
-// WriteResponse to the client
-func (o *PatchMPIntegrationOK) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) {
-
- rw.Header().Del(runtime.HeaderContentType) //Remove Content-Type on empty responses
-
- rw.WriteHeader(200)
-}
-
-/*PatchMPIntegrationDefault Generic error response.
-
-swagger:response patchMPIntegrationDefault
-*/
-type PatchMPIntegrationDefault struct {
- _statusCode int
-
- /*
- In: Body
- */
- Payload *models.Error `json:"body,omitempty"`
-}
-
-// NewPatchMPIntegrationDefault creates PatchMPIntegrationDefault with default headers values
-func NewPatchMPIntegrationDefault(code int) *PatchMPIntegrationDefault {
- if code <= 0 {
- code = 500
- }
-
- return &PatchMPIntegrationDefault{
- _statusCode: code,
- }
-}
-
-// WithStatusCode adds the status to the patch m p integration default response
-func (o *PatchMPIntegrationDefault) WithStatusCode(code int) *PatchMPIntegrationDefault {
- o._statusCode = code
- return o
-}
-
-// SetStatusCode sets the status to the patch m p integration default response
-func (o *PatchMPIntegrationDefault) SetStatusCode(code int) {
- o._statusCode = code
-}
-
-// WithPayload adds the payload to the patch m p integration default response
-func (o *PatchMPIntegrationDefault) WithPayload(payload *models.Error) *PatchMPIntegrationDefault {
- o.Payload = payload
- return o
-}
-
-// SetPayload sets the payload to the patch m p integration default response
-func (o *PatchMPIntegrationDefault) SetPayload(payload *models.Error) {
- o.Payload = payload
-}
-
-// WriteResponse to the client
-func (o *PatchMPIntegrationDefault) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) {
-
- rw.WriteHeader(o._statusCode)
- if o.Payload != nil {
- payload := o.Payload
- if err := producer.Produce(rw, payload); err != nil {
- panic(err) // let the recovery middleware deal with this
- }
- }
-}
diff --git a/operatorapi/operations/operator_api/patch_m_p_integration_urlbuilder.go b/operatorapi/operations/operator_api/patch_m_p_integration_urlbuilder.go
deleted file mode 100644
index 202035fe1..000000000
--- a/operatorapi/operations/operator_api/patch_m_p_integration_urlbuilder.go
+++ /dev/null
@@ -1,104 +0,0 @@
-// Code generated by go-swagger; DO NOT EDIT.
-
-// This file is part of MinIO Console Server
-// Copyright (c) 2022 MinIO, Inc.
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-//
-
-package operator_api
-
-// This file was generated by the swagger tool.
-// Editing this file might prove futile when you re-run the generate command
-
-import (
- "errors"
- "net/url"
- golangswaggerpaths "path"
-)
-
-// PatchMPIntegrationURL generates an URL for the patch m p integration operation
-type PatchMPIntegrationURL struct {
- _basePath string
-}
-
-// WithBasePath sets the base path for this url builder, only required when it's different from the
-// base path specified in the swagger spec.
-// When the value of the base path is an empty string
-func (o *PatchMPIntegrationURL) WithBasePath(bp string) *PatchMPIntegrationURL {
- o.SetBasePath(bp)
- return o
-}
-
-// SetBasePath sets the base path for this url builder, only required when it's different from the
-// base path specified in the swagger spec.
-// When the value of the base path is an empty string
-func (o *PatchMPIntegrationURL) SetBasePath(bp string) {
- o._basePath = bp
-}
-
-// Build a url path and query string
-func (o *PatchMPIntegrationURL) Build() (*url.URL, error) {
- var _result url.URL
-
- var _path = "/mp-integration"
-
- _basePath := o._basePath
- if _basePath == "" {
- _basePath = "/api/v1"
- }
- _result.Path = golangswaggerpaths.Join(_basePath, _path)
-
- return &_result, nil
-}
-
-// Must is a helper function to panic when the url builder returns an error
-func (o *PatchMPIntegrationURL) Must(u *url.URL, err error) *url.URL {
- if err != nil {
- panic(err)
- }
- if u == nil {
- panic("url can't be nil")
- }
- return u
-}
-
-// String returns the string representation of the path with query string
-func (o *PatchMPIntegrationURL) String() string {
- return o.Must(o.Build()).String()
-}
-
-// BuildFull builds a full url with scheme, host, path and query string
-func (o *PatchMPIntegrationURL) BuildFull(scheme, host string) (*url.URL, error) {
- if scheme == "" {
- return nil, errors.New("scheme is required for a full url on PatchMPIntegrationURL")
- }
- if host == "" {
- return nil, errors.New("host is required for a full url on PatchMPIntegrationURL")
- }
-
- base, err := o.Build()
- if err != nil {
- return nil, err
- }
-
- base.Scheme = scheme
- base.Host = host
- return base, nil
-}
-
-// StringFull returns the string representation of a complete url
-func (o *PatchMPIntegrationURL) StringFull(scheme, host string) string {
- return o.Must(o.BuildFull(scheme, host)).String()
-}
diff --git a/portal-ui/build/asset-manifest.json b/portal-ui/build/asset-manifest.json
index 89e488e27..a23da7ba1 100644
--- a/portal-ui/build/asset-manifest.json
+++ b/portal-ui/build/asset-manifest.json
@@ -1,128 +1,126 @@
{
"files": {
- "main.css": "./static/css/main.90d417ae.css",
- "main.js": "./static/js/main.efb70fdf.js",
- "static/js/2483.fc3f6e02.chunk.js": "./static/js/2483.fc3f6e02.chunk.js",
- "static/js/6914.c9671304.chunk.js": "./static/js/6914.c9671304.chunk.js",
- "static/js/4209.1785b76b.chunk.js": "./static/js/4209.1785b76b.chunk.js",
- "static/js/1829.082a42b0.chunk.js": "./static/js/1829.082a42b0.chunk.js",
- "static/js/4455.62d5739d.chunk.js": "./static/js/4455.62d5739d.chunk.js",
- "static/js/5088.43224960.chunk.js": "./static/js/5088.43224960.chunk.js",
- "static/js/5140.e9043b63.chunk.js": "./static/js/5140.e9043b63.chunk.js",
- "static/js/5997.78c91d41.chunk.js": "./static/js/5997.78c91d41.chunk.js",
+ "main.css": "./static/css/main.86370216.css",
+ "main.js": "./static/js/main.5dc94654.js",
+ "static/js/2483.8f3adc20.chunk.js": "./static/js/2483.8f3adc20.chunk.js",
+ "static/js/6914.ed2f1662.chunk.js": "./static/js/6914.ed2f1662.chunk.js",
+ "static/js/4209.4dac93b8.chunk.js": "./static/js/4209.4dac93b8.chunk.js",
+ "static/js/1829.60bc8756.chunk.js": "./static/js/1829.60bc8756.chunk.js",
+ "static/js/4455.596f5a0d.chunk.js": "./static/js/4455.596f5a0d.chunk.js",
+ "static/js/5088.ab7422bd.chunk.js": "./static/js/5088.ab7422bd.chunk.js",
+ "static/js/5140.b1dd0e23.chunk.js": "./static/js/5140.b1dd0e23.chunk.js",
+ "static/js/5997.3eaf5ca8.chunk.js": "./static/js/5997.3eaf5ca8.chunk.js",
"static/js/3176.43953acc.chunk.js": "./static/js/3176.43953acc.chunk.js",
- "static/js/6137.7c3483b1.chunk.js": "./static/js/6137.7c3483b1.chunk.js",
- "static/js/7045.ca5a5aae.chunk.js": "./static/js/7045.ca5a5aae.chunk.js",
- "static/js/9251.6b7b3ee3.chunk.js": "./static/js/9251.6b7b3ee3.chunk.js",
- "static/js/2338.edf0a361.chunk.js": "./static/js/2338.edf0a361.chunk.js",
- "static/js/4335.8f37144a.chunk.js": "./static/js/4335.8f37144a.chunk.js",
- "static/js/3061.5a2c926b.chunk.js": "./static/js/3061.5a2c926b.chunk.js",
- "static/js/6763.e408c6ad.chunk.js": "./static/js/6763.e408c6ad.chunk.js",
- "static/js/3543.e36f8103.chunk.js": "./static/js/3543.e36f8103.chunk.js",
- "static/js/4061.18b19aa0.chunk.js": "./static/js/4061.18b19aa0.chunk.js",
- "static/js/2249.d85d7c19.chunk.js": "./static/js/2249.d85d7c19.chunk.js",
+ "static/js/6137.2c486126.chunk.js": "./static/js/6137.2c486126.chunk.js",
+ "static/js/7045.bc049940.chunk.js": "./static/js/7045.bc049940.chunk.js",
+ "static/js/9251.597ed6d4.chunk.js": "./static/js/9251.597ed6d4.chunk.js",
+ "static/js/2338.560e15ee.chunk.js": "./static/js/2338.560e15ee.chunk.js",
+ "static/js/4335.aee4836f.chunk.js": "./static/js/4335.aee4836f.chunk.js",
+ "static/js/3061.58945a60.chunk.js": "./static/js/3061.58945a60.chunk.js",
+ "static/js/6763.7139c196.chunk.js": "./static/js/6763.7139c196.chunk.js",
+ "static/js/3543.81cc7db0.chunk.js": "./static/js/3543.81cc7db0.chunk.js",
+ "static/js/4061.1838118a.chunk.js": "./static/js/4061.1838118a.chunk.js",
+ "static/js/5112.75a42f1e.chunk.js": "./static/js/5112.75a42f1e.chunk.js",
"static/js/9611.c217768e.chunk.js": "./static/js/9611.c217768e.chunk.js",
- "static/js/2637.4946ae96.chunk.js": "./static/js/2637.4946ae96.chunk.js",
- "static/css/5503.d0badeac.chunk.css": "./static/css/5503.d0badeac.chunk.css",
- "static/js/5503.5d36120f.chunk.js": "./static/js/5503.5d36120f.chunk.js",
- "static/js/5926.1ba3b5eb.chunk.js": "./static/js/5926.1ba3b5eb.chunk.js",
- "static/js/701.1602597e.chunk.js": "./static/js/701.1602597e.chunk.js",
- "static/js/7821.060b10cd.chunk.js": "./static/js/7821.060b10cd.chunk.js",
- "static/css/2850.d0badeac.chunk.css": "./static/css/2850.d0badeac.chunk.css",
- "static/js/2850.e1485c70.chunk.js": "./static/js/2850.e1485c70.chunk.js",
- "static/js/1182.f9bcec67.chunk.js": "./static/js/1182.f9bcec67.chunk.js",
- "static/css/343.d0badeac.chunk.css": "./static/css/343.d0badeac.chunk.css",
- "static/js/343.9bef5ddd.chunk.js": "./static/js/343.9bef5ddd.chunk.js",
- "static/css/1199.d0badeac.chunk.css": "./static/css/1199.d0badeac.chunk.css",
- "static/js/1199.84ef2065.chunk.js": "./static/js/1199.84ef2065.chunk.js",
- "static/css/8614.d0badeac.chunk.css": "./static/css/8614.d0badeac.chunk.css",
- "static/js/8614.e007e045.chunk.js": "./static/js/8614.e007e045.chunk.js",
- "static/css/1395.d0badeac.chunk.css": "./static/css/1395.d0badeac.chunk.css",
- "static/js/1395.f8a4acb9.chunk.js": "./static/js/1395.f8a4acb9.chunk.js",
- "static/js/2555.bce2711c.chunk.js": "./static/js/2555.bce2711c.chunk.js",
- "static/js/7585.23c3cb6d.chunk.js": "./static/js/7585.23c3cb6d.chunk.js",
- "static/js/4847.7c89dc57.chunk.js": "./static/js/4847.7c89dc57.chunk.js",
- "static/js/4653.04094e61.chunk.js": "./static/js/4653.04094e61.chunk.js",
- "static/js/692.c8593ab8.chunk.js": "./static/js/692.c8593ab8.chunk.js",
- "static/js/8626.7ac959a6.chunk.js": "./static/js/8626.7ac959a6.chunk.js",
- "static/js/736.30689e5a.chunk.js": "./static/js/736.30689e5a.chunk.js",
- "static/js/6577.451bf5a2.chunk.js": "./static/js/6577.451bf5a2.chunk.js",
- "static/js/9561.2fa4c7be.chunk.js": "./static/js/9561.2fa4c7be.chunk.js",
- "static/js/4394.9b95db79.chunk.js": "./static/js/4394.9b95db79.chunk.js",
+ "static/js/2637.f268b356.chunk.js": "./static/js/2637.f268b356.chunk.js",
+ "static/css/5503.90c9cdc7.chunk.css": "./static/css/5503.90c9cdc7.chunk.css",
+ "static/js/5503.26259a48.chunk.js": "./static/js/5503.26259a48.chunk.js",
+ "static/js/5926.0f643f13.chunk.js": "./static/js/5926.0f643f13.chunk.js",
+ "static/js/701.81a53820.chunk.js": "./static/js/701.81a53820.chunk.js",
+ "static/js/7821.d4f43f1a.chunk.js": "./static/js/7821.d4f43f1a.chunk.js",
+ "static/css/2850.90c9cdc7.chunk.css": "./static/css/2850.90c9cdc7.chunk.css",
+ "static/js/2850.cca8a24d.chunk.js": "./static/js/2850.cca8a24d.chunk.js",
+ "static/js/1182.cd571ded.chunk.js": "./static/js/1182.cd571ded.chunk.js",
+ "static/css/343.90c9cdc7.chunk.css": "./static/css/343.90c9cdc7.chunk.css",
+ "static/js/343.e9d1a353.chunk.js": "./static/js/343.e9d1a353.chunk.js",
+ "static/css/1199.90c9cdc7.chunk.css": "./static/css/1199.90c9cdc7.chunk.css",
+ "static/js/1199.6d35fa41.chunk.js": "./static/js/1199.6d35fa41.chunk.js",
+ "static/css/5517.90c9cdc7.chunk.css": "./static/css/5517.90c9cdc7.chunk.css",
+ "static/js/5517.bac46ad0.chunk.js": "./static/js/5517.bac46ad0.chunk.js",
+ "static/js/2555.d184ba4d.chunk.js": "./static/js/2555.d184ba4d.chunk.js",
+ "static/js/7585.38a7a791.chunk.js": "./static/js/7585.38a7a791.chunk.js",
+ "static/js/4847.6f54ff1c.chunk.js": "./static/js/4847.6f54ff1c.chunk.js",
+ "static/js/4653.3327f6b5.chunk.js": "./static/js/4653.3327f6b5.chunk.js",
+ "static/js/692.54f42c01.chunk.js": "./static/js/692.54f42c01.chunk.js",
+ "static/js/8626.e7ffb00f.chunk.js": "./static/js/8626.e7ffb00f.chunk.js",
+ "static/js/736.86840c49.chunk.js": "./static/js/736.86840c49.chunk.js",
+ "static/js/6577.200d8901.chunk.js": "./static/js/6577.200d8901.chunk.js",
+ "static/js/9561.291ccf9d.chunk.js": "./static/js/9561.291ccf9d.chunk.js",
+ "static/js/4394.d1cae66d.chunk.js": "./static/js/4394.d1cae66d.chunk.js",
"static/js/4781.f4794912.chunk.js": "./static/js/4781.f4794912.chunk.js",
"static/js/9478.dca1d314.chunk.js": "./static/js/9478.dca1d314.chunk.js",
"static/js/7164.3762a0c0.chunk.js": "./static/js/7164.3762a0c0.chunk.js",
- "static/js/4414.d499a576.chunk.js": "./static/js/4414.d499a576.chunk.js",
- "static/js/7798.4523255f.chunk.js": "./static/js/7798.4523255f.chunk.js",
- "static/js/8833.435c57c9.chunk.js": "./static/js/8833.435c57c9.chunk.js",
- "static/js/471.468250ea.chunk.js": "./static/js/471.468250ea.chunk.js",
+ "static/js/4414.4963fc41.chunk.js": "./static/js/4414.4963fc41.chunk.js",
+ "static/js/7798.b6480ddb.chunk.js": "./static/js/7798.b6480ddb.chunk.js",
+ "static/js/8833.24981129.chunk.js": "./static/js/8833.24981129.chunk.js",
+ "static/js/471.e0097193.chunk.js": "./static/js/471.e0097193.chunk.js",
"static/js/483.96dc1806.chunk.js": "./static/js/483.96dc1806.chunk.js",
- "static/js/9467.89303883.chunk.js": "./static/js/9467.89303883.chunk.js",
- "static/js/6895.a780402b.chunk.js": "./static/js/6895.a780402b.chunk.js",
- "static/js/7925.17b70ce9.chunk.js": "./static/js/7925.17b70ce9.chunk.js",
- "static/js/6331.4b9c378c.chunk.js": "./static/js/6331.4b9c378c.chunk.js",
- "static/js/4133.e423ad64.chunk.js": "./static/js/4133.e423ad64.chunk.js",
- "static/css/1367.d0badeac.chunk.css": "./static/css/1367.d0badeac.chunk.css",
- "static/js/1367.570f471e.chunk.js": "./static/js/1367.570f471e.chunk.js",
- "static/js/3956.04add457.chunk.js": "./static/js/3956.04add457.chunk.js",
- "static/js/9221.74babab3.chunk.js": "./static/js/9221.74babab3.chunk.js",
- "static/js/8896.a985f858.chunk.js": "./static/js/8896.a985f858.chunk.js",
- "static/js/9134.9bb207a3.chunk.js": "./static/js/9134.9bb207a3.chunk.js",
- "static/css/1268.d0badeac.chunk.css": "./static/css/1268.d0badeac.chunk.css",
- "static/js/1268.444486ab.chunk.js": "./static/js/1268.444486ab.chunk.js",
- "static/js/1030.d7679dcf.chunk.js": "./static/js/1030.d7679dcf.chunk.js",
- "static/js/9145.d907d493.chunk.js": "./static/js/9145.d907d493.chunk.js",
- "static/js/1379.ed19d5b2.chunk.js": "./static/js/1379.ed19d5b2.chunk.js",
- "static/js/1501.82aa601c.chunk.js": "./static/js/1501.82aa601c.chunk.js",
- "static/js/9605.0d9d8909.chunk.js": "./static/js/9605.0d9d8909.chunk.js",
- "static/js/426.31bab58a.chunk.js": "./static/js/426.31bab58a.chunk.js",
- "static/js/4298.cc4b772e.chunk.js": "./static/js/4298.cc4b772e.chunk.js",
- "static/js/2878.f17e395f.chunk.js": "./static/js/2878.f17e395f.chunk.js",
- "static/js/8495.71a61743.chunk.js": "./static/js/8495.71a61743.chunk.js",
- "static/js/4934.064b787d.chunk.js": "./static/js/4934.064b787d.chunk.js",
- "static/js/9942.51a9de47.chunk.js": "./static/js/9942.51a9de47.chunk.js",
- "static/js/7021.148329a1.chunk.js": "./static/js/7021.148329a1.chunk.js",
- "static/js/2684.ff523cc8.chunk.js": "./static/js/2684.ff523cc8.chunk.js",
- "static/js/6683.ee501f75.chunk.js": "./static/js/6683.ee501f75.chunk.js",
- "static/js/8350.8858e924.chunk.js": "./static/js/8350.8858e924.chunk.js",
- "static/js/4873.ab307a49.chunk.js": "./static/js/4873.ab307a49.chunk.js",
- "static/js/9449.27ca290f.chunk.js": "./static/js/9449.27ca290f.chunk.js",
- "static/js/7659.425b0e4f.chunk.js": "./static/js/7659.425b0e4f.chunk.js",
- "static/js/9968.10689a81.chunk.js": "./static/js/9968.10689a81.chunk.js",
- "static/js/2180.d8b0a783.chunk.js": "./static/js/2180.d8b0a783.chunk.js",
- "static/js/8253.78199b7c.chunk.js": "./static/js/8253.78199b7c.chunk.js",
- "static/js/3328.d653fd74.chunk.js": "./static/js/3328.d653fd74.chunk.js",
- "static/js/1440.e5771fc7.chunk.js": "./static/js/1440.e5771fc7.chunk.js",
- "static/js/9179.4664c118.chunk.js": "./static/js/9179.4664c118.chunk.js",
- "static/js/51.fe31a1b5.chunk.js": "./static/js/51.fe31a1b5.chunk.js",
- "static/js/711.29c4e77f.chunk.js": "./static/js/711.29c4e77f.chunk.js",
- "static/js/6901.0d9858c2.chunk.js": "./static/js/6901.0d9858c2.chunk.js",
- "static/js/2185.a4530a2b.chunk.js": "./static/js/2185.a4530a2b.chunk.js",
- "static/js/312.b28428a0.chunk.js": "./static/js/312.b28428a0.chunk.js",
- "static/js/2112.d99282a3.chunk.js": "./static/js/2112.d99282a3.chunk.js",
- "static/js/4619.774f2ac4.chunk.js": "./static/js/4619.774f2ac4.chunk.js",
- "static/js/8990.1d656f02.chunk.js": "./static/js/8990.1d656f02.chunk.js",
- "static/js/8455.c317ba9a.chunk.js": "./static/js/8455.c317ba9a.chunk.js",
- "static/css/1913.d0badeac.chunk.css": "./static/css/1913.d0badeac.chunk.css",
- "static/js/1913.cea66f73.chunk.js": "./static/js/1913.cea66f73.chunk.js",
- "static/js/1604.c298cecf.chunk.js": "./static/js/1604.c298cecf.chunk.js",
- "static/js/8391.024d90c0.chunk.js": "./static/js/8391.024d90c0.chunk.js",
- "static/js/402.aec3e2df.chunk.js": "./static/js/402.aec3e2df.chunk.js",
- "static/js/1705.58e59f26.chunk.js": "./static/js/1705.58e59f26.chunk.js",
- "static/js/1581.b3df67cf.chunk.js": "./static/js/1581.b3df67cf.chunk.js",
- "static/js/455.13bb7aa6.chunk.js": "./static/js/455.13bb7aa6.chunk.js",
- "static/js/2661.10751b4b.chunk.js": "./static/js/2661.10751b4b.chunk.js",
- "static/js/889.2a763545.chunk.js": "./static/js/889.2a763545.chunk.js",
- "static/js/9088.8b721a73.chunk.js": "./static/js/9088.8b721a73.chunk.js",
- "static/js/247.b749bae6.chunk.js": "./static/js/247.b749bae6.chunk.js",
- "static/js/2763.700b8a36.chunk.js": "./static/js/2763.700b8a36.chunk.js",
+ "static/js/9467.f80c8cc9.chunk.js": "./static/js/9467.f80c8cc9.chunk.js",
+ "static/js/6895.747b46a8.chunk.js": "./static/js/6895.747b46a8.chunk.js",
+ "static/js/7925.29ca8fac.chunk.js": "./static/js/7925.29ca8fac.chunk.js",
+ "static/js/6331.fcfff663.chunk.js": "./static/js/6331.fcfff663.chunk.js",
+ "static/js/4133.d578498b.chunk.js": "./static/js/4133.d578498b.chunk.js",
+ "static/css/1367.90c9cdc7.chunk.css": "./static/css/1367.90c9cdc7.chunk.css",
+ "static/js/1367.69870fc1.chunk.js": "./static/js/1367.69870fc1.chunk.js",
+ "static/js/3956.aa532678.chunk.js": "./static/js/3956.aa532678.chunk.js",
+ "static/js/9221.5fe353b7.chunk.js": "./static/js/9221.5fe353b7.chunk.js",
+ "static/js/8896.3cbf9873.chunk.js": "./static/js/8896.3cbf9873.chunk.js",
+ "static/js/9134.3cd624c6.chunk.js": "./static/js/9134.3cd624c6.chunk.js",
+ "static/css/1268.90c9cdc7.chunk.css": "./static/css/1268.90c9cdc7.chunk.css",
+ "static/js/1268.d8119a92.chunk.js": "./static/js/1268.d8119a92.chunk.js",
+ "static/js/1030.38e91f62.chunk.js": "./static/js/1030.38e91f62.chunk.js",
+ "static/js/9145.82dff7c3.chunk.js": "./static/js/9145.82dff7c3.chunk.js",
+ "static/js/1379.405ea3e4.chunk.js": "./static/js/1379.405ea3e4.chunk.js",
+ "static/js/1501.d87ade72.chunk.js": "./static/js/1501.d87ade72.chunk.js",
+ "static/js/9605.249d1f92.chunk.js": "./static/js/9605.249d1f92.chunk.js",
+ "static/js/426.9fd80f88.chunk.js": "./static/js/426.9fd80f88.chunk.js",
+ "static/js/4298.e8216a7e.chunk.js": "./static/js/4298.e8216a7e.chunk.js",
+ "static/js/2878.718f713f.chunk.js": "./static/js/2878.718f713f.chunk.js",
+ "static/js/8495.b1689c2d.chunk.js": "./static/js/8495.b1689c2d.chunk.js",
+ "static/js/4934.72071d47.chunk.js": "./static/js/4934.72071d47.chunk.js",
+ "static/js/9942.406de82c.chunk.js": "./static/js/9942.406de82c.chunk.js",
+ "static/js/7021.6d31f973.chunk.js": "./static/js/7021.6d31f973.chunk.js",
+ "static/js/2684.0cd690ab.chunk.js": "./static/js/2684.0cd690ab.chunk.js",
+ "static/js/6683.f9402dc8.chunk.js": "./static/js/6683.f9402dc8.chunk.js",
+ "static/js/8350.1cbb8449.chunk.js": "./static/js/8350.1cbb8449.chunk.js",
+ "static/js/4873.4e512648.chunk.js": "./static/js/4873.4e512648.chunk.js",
+ "static/js/9449.2b80f120.chunk.js": "./static/js/9449.2b80f120.chunk.js",
+ "static/js/7659.28807a59.chunk.js": "./static/js/7659.28807a59.chunk.js",
+ "static/js/9968.5a32c7f4.chunk.js": "./static/js/9968.5a32c7f4.chunk.js",
+ "static/js/2180.03cd0c4b.chunk.js": "./static/js/2180.03cd0c4b.chunk.js",
+ "static/js/8253.ec0f3d9f.chunk.js": "./static/js/8253.ec0f3d9f.chunk.js",
+ "static/js/3328.2f4736e4.chunk.js": "./static/js/3328.2f4736e4.chunk.js",
+ "static/js/1440.b9a2f19f.chunk.js": "./static/js/1440.b9a2f19f.chunk.js",
+ "static/js/9179.92561ffe.chunk.js": "./static/js/9179.92561ffe.chunk.js",
+ "static/js/51.8ddd5a19.chunk.js": "./static/js/51.8ddd5a19.chunk.js",
+ "static/js/711.e9b969b9.chunk.js": "./static/js/711.e9b969b9.chunk.js",
+ "static/js/6901.6bc2bcd9.chunk.js": "./static/js/6901.6bc2bcd9.chunk.js",
+ "static/js/2185.0a99016d.chunk.js": "./static/js/2185.0a99016d.chunk.js",
+ "static/js/312.7e5dc1cb.chunk.js": "./static/js/312.7e5dc1cb.chunk.js",
+ "static/js/2112.10f63a9c.chunk.js": "./static/js/2112.10f63a9c.chunk.js",
+ "static/js/4619.eaf126cc.chunk.js": "./static/js/4619.eaf126cc.chunk.js",
+ "static/js/8990.ffebdc52.chunk.js": "./static/js/8990.ffebdc52.chunk.js",
+ "static/js/8455.828f0717.chunk.js": "./static/js/8455.828f0717.chunk.js",
+ "static/css/1913.90c9cdc7.chunk.css": "./static/css/1913.90c9cdc7.chunk.css",
+ "static/js/1913.40a1e517.chunk.js": "./static/js/1913.40a1e517.chunk.js",
+ "static/js/1604.25690eb1.chunk.js": "./static/js/1604.25690eb1.chunk.js",
+ "static/js/8391.2dea5c99.chunk.js": "./static/js/8391.2dea5c99.chunk.js",
+ "static/js/402.89c71117.chunk.js": "./static/js/402.89c71117.chunk.js",
+ "static/js/1705.32ce00fc.chunk.js": "./static/js/1705.32ce00fc.chunk.js",
+ "static/js/1581.fb295899.chunk.js": "./static/js/1581.fb295899.chunk.js",
+ "static/js/455.b19f8a8b.chunk.js": "./static/js/455.b19f8a8b.chunk.js",
+ "static/js/2661.04f9b92d.chunk.js": "./static/js/2661.04f9b92d.chunk.js",
+ "static/js/889.7a5661d6.chunk.js": "./static/js/889.7a5661d6.chunk.js",
+ "static/js/9088.741a3fa1.chunk.js": "./static/js/9088.741a3fa1.chunk.js",
+ "static/js/247.b3d65df3.chunk.js": "./static/js/247.b3d65df3.chunk.js",
+ "static/js/2763.71344b5a.chunk.js": "./static/js/2763.71344b5a.chunk.js",
"static/js/5171.e8fc646a.chunk.js": "./static/js/5171.e8fc646a.chunk.js",
"static/js/2426.a889403c.chunk.js": "./static/js/2426.a889403c.chunk.js",
- "static/js/3762.52bd15d3.chunk.js": "./static/js/3762.52bd15d3.chunk.js",
"static/js/5561.80af3962.chunk.js": "./static/js/5561.80af3962.chunk.js",
+ "static/js/3762.52bd15d3.chunk.js": "./static/js/3762.52bd15d3.chunk.js",
"static/js/3801.64b6e473.chunk.js": "./static/js/3801.64b6e473.chunk.js",
"static/js/1918.4309a619.chunk.js": "./static/js/1918.4309a619.chunk.js",
- "static/js/6523.fb65841b.chunk.js": "./static/js/6523.fb65841b.chunk.js",
+ "static/js/1373.c65e2a03.chunk.js": "./static/js/1373.c65e2a03.chunk.js",
"static/js/6431.5f2e5e6e.chunk.js": "./static/js/6431.5f2e5e6e.chunk.js",
"static/js/2011.f505a73d.chunk.js": "./static/js/2011.f505a73d.chunk.js",
"static/js/1416.8f4d72a9.chunk.js": "./static/js/1416.8f4d72a9.chunk.js",
@@ -132,143 +130,141 @@
"static/js/6172.b49c709f.chunk.js": "./static/js/6172.b49c709f.chunk.js",
"static/js/6852.10dc5cb9.chunk.js": "./static/js/6852.10dc5cb9.chunk.js",
"static/js/3388.f53bd1d3.chunk.js": "./static/js/3388.f53bd1d3.chunk.js",
- "static/js/7576.5695ff4d.chunk.js": "./static/js/7576.5695ff4d.chunk.js",
+ "static/js/7576.7eab0ac3.chunk.js": "./static/js/7576.7eab0ac3.chunk.js",
"static/js/7002.4064675c.chunk.js": "./static/js/7002.4064675c.chunk.js",
"static/js/6484.3a2447c1.chunk.js": "./static/js/6484.3a2447c1.chunk.js",
+ "static/js/8138.45bff0ff.chunk.js": "./static/js/8138.45bff0ff.chunk.js",
"static/js/7142.4191cc91.chunk.js": "./static/js/7142.4191cc91.chunk.js",
"static/js/7923.f624f038.chunk.js": "./static/js/7923.f624f038.chunk.js",
- "static/js/9785.7383f4d2.chunk.js": "./static/js/9785.7383f4d2.chunk.js",
"static/js/8735.bf97f464.chunk.js": "./static/js/8735.bf97f464.chunk.js",
"static/js/63.c9bf3400.chunk.js": "./static/js/63.c9bf3400.chunk.js",
"static/js/264.58e9bb70.chunk.js": "./static/js/264.58e9bb70.chunk.js",
"static/js/8959.f30c25e0.chunk.js": "./static/js/8959.f30c25e0.chunk.js",
- "static/js/2983.689a9d39.chunk.js": "./static/js/2983.689a9d39.chunk.js",
- "static/js/5289.649f8767.chunk.js": "./static/js/5289.649f8767.chunk.js",
- "static/js/5026.69171baa.chunk.js": "./static/js/5026.69171baa.chunk.js",
+ "static/js/2983.cc2b6b9b.chunk.js": "./static/js/2983.cc2b6b9b.chunk.js",
+ "static/js/5289.faddab03.chunk.js": "./static/js/5289.faddab03.chunk.js",
+ "static/js/5026.fb284fc6.chunk.js": "./static/js/5026.fb284fc6.chunk.js",
"index.html": "./index.html",
- "main.90d417ae.css.map": "./static/css/main.90d417ae.css.map",
- "main.efb70fdf.js.map": "./static/js/main.efb70fdf.js.map",
- "2483.fc3f6e02.chunk.js.map": "./static/js/2483.fc3f6e02.chunk.js.map",
- "6914.c9671304.chunk.js.map": "./static/js/6914.c9671304.chunk.js.map",
- "4209.1785b76b.chunk.js.map": "./static/js/4209.1785b76b.chunk.js.map",
- "1829.082a42b0.chunk.js.map": "./static/js/1829.082a42b0.chunk.js.map",
- "4455.62d5739d.chunk.js.map": "./static/js/4455.62d5739d.chunk.js.map",
- "5088.43224960.chunk.js.map": "./static/js/5088.43224960.chunk.js.map",
- "5140.e9043b63.chunk.js.map": "./static/js/5140.e9043b63.chunk.js.map",
- "5997.78c91d41.chunk.js.map": "./static/js/5997.78c91d41.chunk.js.map",
+ "main.86370216.css.map": "./static/css/main.86370216.css.map",
+ "main.5dc94654.js.map": "./static/js/main.5dc94654.js.map",
+ "2483.8f3adc20.chunk.js.map": "./static/js/2483.8f3adc20.chunk.js.map",
+ "6914.ed2f1662.chunk.js.map": "./static/js/6914.ed2f1662.chunk.js.map",
+ "4209.4dac93b8.chunk.js.map": "./static/js/4209.4dac93b8.chunk.js.map",
+ "1829.60bc8756.chunk.js.map": "./static/js/1829.60bc8756.chunk.js.map",
+ "4455.596f5a0d.chunk.js.map": "./static/js/4455.596f5a0d.chunk.js.map",
+ "5088.ab7422bd.chunk.js.map": "./static/js/5088.ab7422bd.chunk.js.map",
+ "5140.b1dd0e23.chunk.js.map": "./static/js/5140.b1dd0e23.chunk.js.map",
+ "5997.3eaf5ca8.chunk.js.map": "./static/js/5997.3eaf5ca8.chunk.js.map",
"3176.43953acc.chunk.js.map": "./static/js/3176.43953acc.chunk.js.map",
- "6137.7c3483b1.chunk.js.map": "./static/js/6137.7c3483b1.chunk.js.map",
- "7045.ca5a5aae.chunk.js.map": "./static/js/7045.ca5a5aae.chunk.js.map",
- "9251.6b7b3ee3.chunk.js.map": "./static/js/9251.6b7b3ee3.chunk.js.map",
- "2338.edf0a361.chunk.js.map": "./static/js/2338.edf0a361.chunk.js.map",
- "4335.8f37144a.chunk.js.map": "./static/js/4335.8f37144a.chunk.js.map",
- "3061.5a2c926b.chunk.js.map": "./static/js/3061.5a2c926b.chunk.js.map",
- "6763.e408c6ad.chunk.js.map": "./static/js/6763.e408c6ad.chunk.js.map",
- "3543.e36f8103.chunk.js.map": "./static/js/3543.e36f8103.chunk.js.map",
- "4061.18b19aa0.chunk.js.map": "./static/js/4061.18b19aa0.chunk.js.map",
- "2249.d85d7c19.chunk.js.map": "./static/js/2249.d85d7c19.chunk.js.map",
+ "6137.2c486126.chunk.js.map": "./static/js/6137.2c486126.chunk.js.map",
+ "7045.bc049940.chunk.js.map": "./static/js/7045.bc049940.chunk.js.map",
+ "9251.597ed6d4.chunk.js.map": "./static/js/9251.597ed6d4.chunk.js.map",
+ "2338.560e15ee.chunk.js.map": "./static/js/2338.560e15ee.chunk.js.map",
+ "4335.aee4836f.chunk.js.map": "./static/js/4335.aee4836f.chunk.js.map",
+ "3061.58945a60.chunk.js.map": "./static/js/3061.58945a60.chunk.js.map",
+ "6763.7139c196.chunk.js.map": "./static/js/6763.7139c196.chunk.js.map",
+ "3543.81cc7db0.chunk.js.map": "./static/js/3543.81cc7db0.chunk.js.map",
+ "4061.1838118a.chunk.js.map": "./static/js/4061.1838118a.chunk.js.map",
+ "5112.75a42f1e.chunk.js.map": "./static/js/5112.75a42f1e.chunk.js.map",
"9611.c217768e.chunk.js.map": "./static/js/9611.c217768e.chunk.js.map",
- "2637.4946ae96.chunk.js.map": "./static/js/2637.4946ae96.chunk.js.map",
- "5503.d0badeac.chunk.css.map": "./static/css/5503.d0badeac.chunk.css.map",
- "5503.5d36120f.chunk.js.map": "./static/js/5503.5d36120f.chunk.js.map",
- "5926.1ba3b5eb.chunk.js.map": "./static/js/5926.1ba3b5eb.chunk.js.map",
- "701.1602597e.chunk.js.map": "./static/js/701.1602597e.chunk.js.map",
- "7821.060b10cd.chunk.js.map": "./static/js/7821.060b10cd.chunk.js.map",
- "2850.d0badeac.chunk.css.map": "./static/css/2850.d0badeac.chunk.css.map",
- "2850.e1485c70.chunk.js.map": "./static/js/2850.e1485c70.chunk.js.map",
- "1182.f9bcec67.chunk.js.map": "./static/js/1182.f9bcec67.chunk.js.map",
- "343.d0badeac.chunk.css.map": "./static/css/343.d0badeac.chunk.css.map",
- "343.9bef5ddd.chunk.js.map": "./static/js/343.9bef5ddd.chunk.js.map",
- "1199.d0badeac.chunk.css.map": "./static/css/1199.d0badeac.chunk.css.map",
- "1199.84ef2065.chunk.js.map": "./static/js/1199.84ef2065.chunk.js.map",
- "8614.d0badeac.chunk.css.map": "./static/css/8614.d0badeac.chunk.css.map",
- "8614.e007e045.chunk.js.map": "./static/js/8614.e007e045.chunk.js.map",
- "1395.d0badeac.chunk.css.map": "./static/css/1395.d0badeac.chunk.css.map",
- "1395.f8a4acb9.chunk.js.map": "./static/js/1395.f8a4acb9.chunk.js.map",
- "2555.bce2711c.chunk.js.map": "./static/js/2555.bce2711c.chunk.js.map",
- "7585.23c3cb6d.chunk.js.map": "./static/js/7585.23c3cb6d.chunk.js.map",
- "4847.7c89dc57.chunk.js.map": "./static/js/4847.7c89dc57.chunk.js.map",
- "4653.04094e61.chunk.js.map": "./static/js/4653.04094e61.chunk.js.map",
- "692.c8593ab8.chunk.js.map": "./static/js/692.c8593ab8.chunk.js.map",
- "8626.7ac959a6.chunk.js.map": "./static/js/8626.7ac959a6.chunk.js.map",
- "736.30689e5a.chunk.js.map": "./static/js/736.30689e5a.chunk.js.map",
- "6577.451bf5a2.chunk.js.map": "./static/js/6577.451bf5a2.chunk.js.map",
- "9561.2fa4c7be.chunk.js.map": "./static/js/9561.2fa4c7be.chunk.js.map",
- "4394.9b95db79.chunk.js.map": "./static/js/4394.9b95db79.chunk.js.map",
+ "2637.f268b356.chunk.js.map": "./static/js/2637.f268b356.chunk.js.map",
+ "5503.90c9cdc7.chunk.css.map": "./static/css/5503.90c9cdc7.chunk.css.map",
+ "5503.26259a48.chunk.js.map": "./static/js/5503.26259a48.chunk.js.map",
+ "5926.0f643f13.chunk.js.map": "./static/js/5926.0f643f13.chunk.js.map",
+ "701.81a53820.chunk.js.map": "./static/js/701.81a53820.chunk.js.map",
+ "7821.d4f43f1a.chunk.js.map": "./static/js/7821.d4f43f1a.chunk.js.map",
+ "2850.90c9cdc7.chunk.css.map": "./static/css/2850.90c9cdc7.chunk.css.map",
+ "2850.cca8a24d.chunk.js.map": "./static/js/2850.cca8a24d.chunk.js.map",
+ "1182.cd571ded.chunk.js.map": "./static/js/1182.cd571ded.chunk.js.map",
+ "343.90c9cdc7.chunk.css.map": "./static/css/343.90c9cdc7.chunk.css.map",
+ "343.e9d1a353.chunk.js.map": "./static/js/343.e9d1a353.chunk.js.map",
+ "1199.90c9cdc7.chunk.css.map": "./static/css/1199.90c9cdc7.chunk.css.map",
+ "1199.6d35fa41.chunk.js.map": "./static/js/1199.6d35fa41.chunk.js.map",
+ "5517.90c9cdc7.chunk.css.map": "./static/css/5517.90c9cdc7.chunk.css.map",
+ "5517.bac46ad0.chunk.js.map": "./static/js/5517.bac46ad0.chunk.js.map",
+ "2555.d184ba4d.chunk.js.map": "./static/js/2555.d184ba4d.chunk.js.map",
+ "7585.38a7a791.chunk.js.map": "./static/js/7585.38a7a791.chunk.js.map",
+ "4847.6f54ff1c.chunk.js.map": "./static/js/4847.6f54ff1c.chunk.js.map",
+ "4653.3327f6b5.chunk.js.map": "./static/js/4653.3327f6b5.chunk.js.map",
+ "692.54f42c01.chunk.js.map": "./static/js/692.54f42c01.chunk.js.map",
+ "8626.e7ffb00f.chunk.js.map": "./static/js/8626.e7ffb00f.chunk.js.map",
+ "736.86840c49.chunk.js.map": "./static/js/736.86840c49.chunk.js.map",
+ "6577.200d8901.chunk.js.map": "./static/js/6577.200d8901.chunk.js.map",
+ "9561.291ccf9d.chunk.js.map": "./static/js/9561.291ccf9d.chunk.js.map",
+ "4394.d1cae66d.chunk.js.map": "./static/js/4394.d1cae66d.chunk.js.map",
"4781.f4794912.chunk.js.map": "./static/js/4781.f4794912.chunk.js.map",
"9478.dca1d314.chunk.js.map": "./static/js/9478.dca1d314.chunk.js.map",
"7164.3762a0c0.chunk.js.map": "./static/js/7164.3762a0c0.chunk.js.map",
- "4414.d499a576.chunk.js.map": "./static/js/4414.d499a576.chunk.js.map",
- "7798.4523255f.chunk.js.map": "./static/js/7798.4523255f.chunk.js.map",
- "8833.435c57c9.chunk.js.map": "./static/js/8833.435c57c9.chunk.js.map",
- "471.468250ea.chunk.js.map": "./static/js/471.468250ea.chunk.js.map",
+ "4414.4963fc41.chunk.js.map": "./static/js/4414.4963fc41.chunk.js.map",
+ "7798.b6480ddb.chunk.js.map": "./static/js/7798.b6480ddb.chunk.js.map",
+ "8833.24981129.chunk.js.map": "./static/js/8833.24981129.chunk.js.map",
+ "471.e0097193.chunk.js.map": "./static/js/471.e0097193.chunk.js.map",
"483.96dc1806.chunk.js.map": "./static/js/483.96dc1806.chunk.js.map",
- "9467.89303883.chunk.js.map": "./static/js/9467.89303883.chunk.js.map",
- "6895.a780402b.chunk.js.map": "./static/js/6895.a780402b.chunk.js.map",
- "7925.17b70ce9.chunk.js.map": "./static/js/7925.17b70ce9.chunk.js.map",
- "6331.4b9c378c.chunk.js.map": "./static/js/6331.4b9c378c.chunk.js.map",
- "4133.e423ad64.chunk.js.map": "./static/js/4133.e423ad64.chunk.js.map",
- "1367.d0badeac.chunk.css.map": "./static/css/1367.d0badeac.chunk.css.map",
- "1367.570f471e.chunk.js.map": "./static/js/1367.570f471e.chunk.js.map",
- "3956.04add457.chunk.js.map": "./static/js/3956.04add457.chunk.js.map",
- "9221.74babab3.chunk.js.map": "./static/js/9221.74babab3.chunk.js.map",
- "8896.a985f858.chunk.js.map": "./static/js/8896.a985f858.chunk.js.map",
- "9134.9bb207a3.chunk.js.map": "./static/js/9134.9bb207a3.chunk.js.map",
- "1268.d0badeac.chunk.css.map": "./static/css/1268.d0badeac.chunk.css.map",
- "1268.444486ab.chunk.js.map": "./static/js/1268.444486ab.chunk.js.map",
- "1030.d7679dcf.chunk.js.map": "./static/js/1030.d7679dcf.chunk.js.map",
- "9145.d907d493.chunk.js.map": "./static/js/9145.d907d493.chunk.js.map",
- "1379.ed19d5b2.chunk.js.map": "./static/js/1379.ed19d5b2.chunk.js.map",
- "1501.82aa601c.chunk.js.map": "./static/js/1501.82aa601c.chunk.js.map",
- "9605.0d9d8909.chunk.js.map": "./static/js/9605.0d9d8909.chunk.js.map",
- "426.31bab58a.chunk.js.map": "./static/js/426.31bab58a.chunk.js.map",
- "4298.cc4b772e.chunk.js.map": "./static/js/4298.cc4b772e.chunk.js.map",
- "2878.f17e395f.chunk.js.map": "./static/js/2878.f17e395f.chunk.js.map",
- "8495.71a61743.chunk.js.map": "./static/js/8495.71a61743.chunk.js.map",
- "4934.064b787d.chunk.js.map": "./static/js/4934.064b787d.chunk.js.map",
- "9942.51a9de47.chunk.js.map": "./static/js/9942.51a9de47.chunk.js.map",
- "7021.148329a1.chunk.js.map": "./static/js/7021.148329a1.chunk.js.map",
- "2684.ff523cc8.chunk.js.map": "./static/js/2684.ff523cc8.chunk.js.map",
- "6683.ee501f75.chunk.js.map": "./static/js/6683.ee501f75.chunk.js.map",
- "8350.8858e924.chunk.js.map": "./static/js/8350.8858e924.chunk.js.map",
- "4873.ab307a49.chunk.js.map": "./static/js/4873.ab307a49.chunk.js.map",
- "9449.27ca290f.chunk.js.map": "./static/js/9449.27ca290f.chunk.js.map",
- "7659.425b0e4f.chunk.js.map": "./static/js/7659.425b0e4f.chunk.js.map",
- "9968.10689a81.chunk.js.map": "./static/js/9968.10689a81.chunk.js.map",
- "2180.d8b0a783.chunk.js.map": "./static/js/2180.d8b0a783.chunk.js.map",
- "8253.78199b7c.chunk.js.map": "./static/js/8253.78199b7c.chunk.js.map",
- "3328.d653fd74.chunk.js.map": "./static/js/3328.d653fd74.chunk.js.map",
- "1440.e5771fc7.chunk.js.map": "./static/js/1440.e5771fc7.chunk.js.map",
- "9179.4664c118.chunk.js.map": "./static/js/9179.4664c118.chunk.js.map",
- "51.fe31a1b5.chunk.js.map": "./static/js/51.fe31a1b5.chunk.js.map",
- "711.29c4e77f.chunk.js.map": "./static/js/711.29c4e77f.chunk.js.map",
- "6901.0d9858c2.chunk.js.map": "./static/js/6901.0d9858c2.chunk.js.map",
- "2185.a4530a2b.chunk.js.map": "./static/js/2185.a4530a2b.chunk.js.map",
- "312.b28428a0.chunk.js.map": "./static/js/312.b28428a0.chunk.js.map",
- "2112.d99282a3.chunk.js.map": "./static/js/2112.d99282a3.chunk.js.map",
- "4619.774f2ac4.chunk.js.map": "./static/js/4619.774f2ac4.chunk.js.map",
- "8990.1d656f02.chunk.js.map": "./static/js/8990.1d656f02.chunk.js.map",
- "8455.c317ba9a.chunk.js.map": "./static/js/8455.c317ba9a.chunk.js.map",
- "1913.d0badeac.chunk.css.map": "./static/css/1913.d0badeac.chunk.css.map",
- "1913.cea66f73.chunk.js.map": "./static/js/1913.cea66f73.chunk.js.map",
- "1604.c298cecf.chunk.js.map": "./static/js/1604.c298cecf.chunk.js.map",
- "8391.024d90c0.chunk.js.map": "./static/js/8391.024d90c0.chunk.js.map",
- "402.aec3e2df.chunk.js.map": "./static/js/402.aec3e2df.chunk.js.map",
- "1705.58e59f26.chunk.js.map": "./static/js/1705.58e59f26.chunk.js.map",
- "1581.b3df67cf.chunk.js.map": "./static/js/1581.b3df67cf.chunk.js.map",
- "455.13bb7aa6.chunk.js.map": "./static/js/455.13bb7aa6.chunk.js.map",
- "2661.10751b4b.chunk.js.map": "./static/js/2661.10751b4b.chunk.js.map",
- "889.2a763545.chunk.js.map": "./static/js/889.2a763545.chunk.js.map",
- "9088.8b721a73.chunk.js.map": "./static/js/9088.8b721a73.chunk.js.map",
- "247.b749bae6.chunk.js.map": "./static/js/247.b749bae6.chunk.js.map",
- "2763.700b8a36.chunk.js.map": "./static/js/2763.700b8a36.chunk.js.map",
+ "9467.f80c8cc9.chunk.js.map": "./static/js/9467.f80c8cc9.chunk.js.map",
+ "6895.747b46a8.chunk.js.map": "./static/js/6895.747b46a8.chunk.js.map",
+ "7925.29ca8fac.chunk.js.map": "./static/js/7925.29ca8fac.chunk.js.map",
+ "6331.fcfff663.chunk.js.map": "./static/js/6331.fcfff663.chunk.js.map",
+ "4133.d578498b.chunk.js.map": "./static/js/4133.d578498b.chunk.js.map",
+ "1367.90c9cdc7.chunk.css.map": "./static/css/1367.90c9cdc7.chunk.css.map",
+ "1367.69870fc1.chunk.js.map": "./static/js/1367.69870fc1.chunk.js.map",
+ "3956.aa532678.chunk.js.map": "./static/js/3956.aa532678.chunk.js.map",
+ "9221.5fe353b7.chunk.js.map": "./static/js/9221.5fe353b7.chunk.js.map",
+ "8896.3cbf9873.chunk.js.map": "./static/js/8896.3cbf9873.chunk.js.map",
+ "9134.3cd624c6.chunk.js.map": "./static/js/9134.3cd624c6.chunk.js.map",
+ "1268.90c9cdc7.chunk.css.map": "./static/css/1268.90c9cdc7.chunk.css.map",
+ "1268.d8119a92.chunk.js.map": "./static/js/1268.d8119a92.chunk.js.map",
+ "1030.38e91f62.chunk.js.map": "./static/js/1030.38e91f62.chunk.js.map",
+ "9145.82dff7c3.chunk.js.map": "./static/js/9145.82dff7c3.chunk.js.map",
+ "1379.405ea3e4.chunk.js.map": "./static/js/1379.405ea3e4.chunk.js.map",
+ "1501.d87ade72.chunk.js.map": "./static/js/1501.d87ade72.chunk.js.map",
+ "9605.249d1f92.chunk.js.map": "./static/js/9605.249d1f92.chunk.js.map",
+ "426.9fd80f88.chunk.js.map": "./static/js/426.9fd80f88.chunk.js.map",
+ "4298.e8216a7e.chunk.js.map": "./static/js/4298.e8216a7e.chunk.js.map",
+ "2878.718f713f.chunk.js.map": "./static/js/2878.718f713f.chunk.js.map",
+ "8495.b1689c2d.chunk.js.map": "./static/js/8495.b1689c2d.chunk.js.map",
+ "4934.72071d47.chunk.js.map": "./static/js/4934.72071d47.chunk.js.map",
+ "9942.406de82c.chunk.js.map": "./static/js/9942.406de82c.chunk.js.map",
+ "7021.6d31f973.chunk.js.map": "./static/js/7021.6d31f973.chunk.js.map",
+ "2684.0cd690ab.chunk.js.map": "./static/js/2684.0cd690ab.chunk.js.map",
+ "6683.f9402dc8.chunk.js.map": "./static/js/6683.f9402dc8.chunk.js.map",
+ "8350.1cbb8449.chunk.js.map": "./static/js/8350.1cbb8449.chunk.js.map",
+ "4873.4e512648.chunk.js.map": "./static/js/4873.4e512648.chunk.js.map",
+ "9449.2b80f120.chunk.js.map": "./static/js/9449.2b80f120.chunk.js.map",
+ "7659.28807a59.chunk.js.map": "./static/js/7659.28807a59.chunk.js.map",
+ "9968.5a32c7f4.chunk.js.map": "./static/js/9968.5a32c7f4.chunk.js.map",
+ "2180.03cd0c4b.chunk.js.map": "./static/js/2180.03cd0c4b.chunk.js.map",
+ "8253.ec0f3d9f.chunk.js.map": "./static/js/8253.ec0f3d9f.chunk.js.map",
+ "3328.2f4736e4.chunk.js.map": "./static/js/3328.2f4736e4.chunk.js.map",
+ "1440.b9a2f19f.chunk.js.map": "./static/js/1440.b9a2f19f.chunk.js.map",
+ "9179.92561ffe.chunk.js.map": "./static/js/9179.92561ffe.chunk.js.map",
+ "51.8ddd5a19.chunk.js.map": "./static/js/51.8ddd5a19.chunk.js.map",
+ "711.e9b969b9.chunk.js.map": "./static/js/711.e9b969b9.chunk.js.map",
+ "6901.6bc2bcd9.chunk.js.map": "./static/js/6901.6bc2bcd9.chunk.js.map",
+ "2185.0a99016d.chunk.js.map": "./static/js/2185.0a99016d.chunk.js.map",
+ "312.7e5dc1cb.chunk.js.map": "./static/js/312.7e5dc1cb.chunk.js.map",
+ "2112.10f63a9c.chunk.js.map": "./static/js/2112.10f63a9c.chunk.js.map",
+ "4619.eaf126cc.chunk.js.map": "./static/js/4619.eaf126cc.chunk.js.map",
+ "8990.ffebdc52.chunk.js.map": "./static/js/8990.ffebdc52.chunk.js.map",
+ "8455.828f0717.chunk.js.map": "./static/js/8455.828f0717.chunk.js.map",
+ "1913.90c9cdc7.chunk.css.map": "./static/css/1913.90c9cdc7.chunk.css.map",
+ "1913.40a1e517.chunk.js.map": "./static/js/1913.40a1e517.chunk.js.map",
+ "1604.25690eb1.chunk.js.map": "./static/js/1604.25690eb1.chunk.js.map",
+ "8391.2dea5c99.chunk.js.map": "./static/js/8391.2dea5c99.chunk.js.map",
+ "402.89c71117.chunk.js.map": "./static/js/402.89c71117.chunk.js.map",
+ "1705.32ce00fc.chunk.js.map": "./static/js/1705.32ce00fc.chunk.js.map",
+ "1581.fb295899.chunk.js.map": "./static/js/1581.fb295899.chunk.js.map",
+ "455.b19f8a8b.chunk.js.map": "./static/js/455.b19f8a8b.chunk.js.map",
+ "2661.04f9b92d.chunk.js.map": "./static/js/2661.04f9b92d.chunk.js.map",
+ "889.7a5661d6.chunk.js.map": "./static/js/889.7a5661d6.chunk.js.map",
+ "9088.741a3fa1.chunk.js.map": "./static/js/9088.741a3fa1.chunk.js.map",
+ "247.b3d65df3.chunk.js.map": "./static/js/247.b3d65df3.chunk.js.map",
+ "2763.71344b5a.chunk.js.map": "./static/js/2763.71344b5a.chunk.js.map",
"5171.e8fc646a.chunk.js.map": "./static/js/5171.e8fc646a.chunk.js.map",
"2426.a889403c.chunk.js.map": "./static/js/2426.a889403c.chunk.js.map",
- "3762.52bd15d3.chunk.js.map": "./static/js/3762.52bd15d3.chunk.js.map",
"5561.80af3962.chunk.js.map": "./static/js/5561.80af3962.chunk.js.map",
+ "3762.52bd15d3.chunk.js.map": "./static/js/3762.52bd15d3.chunk.js.map",
"3801.64b6e473.chunk.js.map": "./static/js/3801.64b6e473.chunk.js.map",
"1918.4309a619.chunk.js.map": "./static/js/1918.4309a619.chunk.js.map",
- "6523.fb65841b.chunk.js.map": "./static/js/6523.fb65841b.chunk.js.map",
+ "1373.c65e2a03.chunk.js.map": "./static/js/1373.c65e2a03.chunk.js.map",
"6431.5f2e5e6e.chunk.js.map": "./static/js/6431.5f2e5e6e.chunk.js.map",
"2011.f505a73d.chunk.js.map": "./static/js/2011.f505a73d.chunk.js.map",
"1416.8f4d72a9.chunk.js.map": "./static/js/1416.8f4d72a9.chunk.js.map",
@@ -278,22 +274,22 @@
"6172.b49c709f.chunk.js.map": "./static/js/6172.b49c709f.chunk.js.map",
"6852.10dc5cb9.chunk.js.map": "./static/js/6852.10dc5cb9.chunk.js.map",
"3388.f53bd1d3.chunk.js.map": "./static/js/3388.f53bd1d3.chunk.js.map",
- "7576.5695ff4d.chunk.js.map": "./static/js/7576.5695ff4d.chunk.js.map",
+ "7576.7eab0ac3.chunk.js.map": "./static/js/7576.7eab0ac3.chunk.js.map",
"7002.4064675c.chunk.js.map": "./static/js/7002.4064675c.chunk.js.map",
"6484.3a2447c1.chunk.js.map": "./static/js/6484.3a2447c1.chunk.js.map",
+ "8138.45bff0ff.chunk.js.map": "./static/js/8138.45bff0ff.chunk.js.map",
"7142.4191cc91.chunk.js.map": "./static/js/7142.4191cc91.chunk.js.map",
"7923.f624f038.chunk.js.map": "./static/js/7923.f624f038.chunk.js.map",
- "9785.7383f4d2.chunk.js.map": "./static/js/9785.7383f4d2.chunk.js.map",
"8735.bf97f464.chunk.js.map": "./static/js/8735.bf97f464.chunk.js.map",
"63.c9bf3400.chunk.js.map": "./static/js/63.c9bf3400.chunk.js.map",
"264.58e9bb70.chunk.js.map": "./static/js/264.58e9bb70.chunk.js.map",
"8959.f30c25e0.chunk.js.map": "./static/js/8959.f30c25e0.chunk.js.map",
- "2983.689a9d39.chunk.js.map": "./static/js/2983.689a9d39.chunk.js.map",
- "5289.649f8767.chunk.js.map": "./static/js/5289.649f8767.chunk.js.map",
- "5026.69171baa.chunk.js.map": "./static/js/5026.69171baa.chunk.js.map"
+ "2983.cc2b6b9b.chunk.js.map": "./static/js/2983.cc2b6b9b.chunk.js.map",
+ "5289.faddab03.chunk.js.map": "./static/js/5289.faddab03.chunk.js.map",
+ "5026.fb284fc6.chunk.js.map": "./static/js/5026.fb284fc6.chunk.js.map"
},
"entrypoints": [
- "static/css/main.90d417ae.css",
- "static/js/main.efb70fdf.js"
+ "static/css/main.86370216.css",
+ "static/js/main.5dc94654.js"
]
}
\ No newline at end of file
diff --git a/portal-ui/build/index.html b/portal-ui/build/index.html
index 64c608931..b85b615fe 100644
--- a/portal-ui/build/index.html
+++ b/portal-ui/build/index.html
@@ -1 +1 @@
-
MinIO Console You need to enable JavaScript to run this app.
\ No newline at end of file
+MinIO Console You need to enable JavaScript to run this app.
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1199.d0badeac.chunk.css b/portal-ui/build/static/css/1199.90c9cdc7.chunk.css
similarity index 99%
rename from portal-ui/build/static/css/1199.d0badeac.chunk.css
rename to portal-ui/build/static/css/1199.90c9cdc7.chunk.css
index 39e78b872..cf213bbb6 100644
--- a/portal-ui/build/static/css/1199.d0badeac.chunk.css
+++ b/portal-ui/build/static/css/1199.90c9cdc7.chunk.css
@@ -1,2 +1,2 @@
@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=1199.d0badeac.chunk.css.map*/
\ No newline at end of file
+/*# sourceMappingURL=1199.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1199.d0badeac.chunk.css.map b/portal-ui/build/static/css/1199.90c9cdc7.chunk.css.map
similarity index 99%
rename from portal-ui/build/static/css/1199.d0badeac.chunk.css.map
rename to portal-ui/build/static/css/1199.90c9cdc7.chunk.css.map
index 7149c29ab..f200f2a24 100644
--- a/portal-ui/build/static/css/1199.d0badeac.chunk.css.map
+++ b/portal-ui/build/static/css/1199.90c9cdc7.chunk.css.map
@@ -1 +1 @@
-{"version":3,"file":"static/css/1199.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/css/1199.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1268.d0badeac.chunk.css b/portal-ui/build/static/css/1268.90c9cdc7.chunk.css
similarity index 99%
rename from portal-ui/build/static/css/1268.d0badeac.chunk.css
rename to portal-ui/build/static/css/1268.90c9cdc7.chunk.css
index d0226dba3..294bb2d73 100644
--- a/portal-ui/build/static/css/1268.d0badeac.chunk.css
+++ b/portal-ui/build/static/css/1268.90c9cdc7.chunk.css
@@ -1,2 +1,2 @@
@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=1268.d0badeac.chunk.css.map*/
\ No newline at end of file
+/*# sourceMappingURL=1268.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1268.d0badeac.chunk.css.map b/portal-ui/build/static/css/1268.90c9cdc7.chunk.css.map
similarity index 99%
rename from portal-ui/build/static/css/1268.d0badeac.chunk.css.map
rename to portal-ui/build/static/css/1268.90c9cdc7.chunk.css.map
index 363212359..4b31241bc 100644
--- a/portal-ui/build/static/css/1268.d0badeac.chunk.css.map
+++ b/portal-ui/build/static/css/1268.90c9cdc7.chunk.css.map
@@ -1 +1 @@
-{"version":3,"file":"static/css/1268.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/css/1268.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1367.d0badeac.chunk.css b/portal-ui/build/static/css/1367.90c9cdc7.chunk.css
similarity index 99%
rename from portal-ui/build/static/css/1367.d0badeac.chunk.css
rename to portal-ui/build/static/css/1367.90c9cdc7.chunk.css
index 448704df5..57a5c7473 100644
--- a/portal-ui/build/static/css/1367.d0badeac.chunk.css
+++ b/portal-ui/build/static/css/1367.90c9cdc7.chunk.css
@@ -1,2 +1,2 @@
@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=1367.d0badeac.chunk.css.map*/
\ No newline at end of file
+/*# sourceMappingURL=1367.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1367.d0badeac.chunk.css.map b/portal-ui/build/static/css/1367.90c9cdc7.chunk.css.map
similarity index 99%
rename from portal-ui/build/static/css/1367.d0badeac.chunk.css.map
rename to portal-ui/build/static/css/1367.90c9cdc7.chunk.css.map
index af0bdd21a..108d79801 100644
--- a/portal-ui/build/static/css/1367.d0badeac.chunk.css.map
+++ b/portal-ui/build/static/css/1367.90c9cdc7.chunk.css.map
@@ -1 +1 @@
-{"version":3,"file":"static/css/1367.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/css/1367.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1395.d0badeac.chunk.css b/portal-ui/build/static/css/1913.90c9cdc7.chunk.css
similarity index 99%
rename from portal-ui/build/static/css/1395.d0badeac.chunk.css
rename to portal-ui/build/static/css/1913.90c9cdc7.chunk.css
index d2162abd7..3c790cc78 100644
--- a/portal-ui/build/static/css/1395.d0badeac.chunk.css
+++ b/portal-ui/build/static/css/1913.90c9cdc7.chunk.css
@@ -1,2 +1,2 @@
@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=1395.d0badeac.chunk.css.map*/
\ No newline at end of file
+/*# sourceMappingURL=1913.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1395.d0badeac.chunk.css.map b/portal-ui/build/static/css/1913.90c9cdc7.chunk.css.map
similarity index 99%
rename from portal-ui/build/static/css/1395.d0badeac.chunk.css.map
rename to portal-ui/build/static/css/1913.90c9cdc7.chunk.css.map
index 2a19a9677..7650e9854 100644
--- a/portal-ui/build/static/css/1395.d0badeac.chunk.css.map
+++ b/portal-ui/build/static/css/1913.90c9cdc7.chunk.css.map
@@ -1 +1 @@
-{"version":3,"file":"static/css/1395.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/css/1913.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1913.d0badeac.chunk.css b/portal-ui/build/static/css/1913.d0badeac.chunk.css
deleted file mode 100644
index 1006823c8..000000000
--- a/portal-ui/build/static/css/1913.d0badeac.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=1913.d0badeac.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/1913.d0badeac.chunk.css.map b/portal-ui/build/static/css/1913.d0badeac.chunk.css.map
deleted file mode 100644
index c8b92d6a3..000000000
--- a/portal-ui/build/static/css/1913.d0badeac.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/1913.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/2850.90c9cdc7.chunk.css b/portal-ui/build/static/css/2850.90c9cdc7.chunk.css
new file mode 100644
index 000000000..31b654aa3
--- /dev/null
+++ b/portal-ui/build/static/css/2850.90c9cdc7.chunk.css
@@ -0,0 +1,2 @@
+@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
+/*# sourceMappingURL=2850.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/2850.90c9cdc7.chunk.css.map b/portal-ui/build/static/css/2850.90c9cdc7.chunk.css.map
new file mode 100644
index 000000000..02a533c5a
--- /dev/null
+++ b/portal-ui/build/static/css/2850.90c9cdc7.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/2850.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/2850.d0badeac.chunk.css b/portal-ui/build/static/css/2850.d0badeac.chunk.css
deleted file mode 100644
index 407497c00..000000000
--- a/portal-ui/build/static/css/2850.d0badeac.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=2850.d0badeac.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/2850.d0badeac.chunk.css.map b/portal-ui/build/static/css/2850.d0badeac.chunk.css.map
deleted file mode 100644
index ce7c781ac..000000000
--- a/portal-ui/build/static/css/2850.d0badeac.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/2850.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/343.d0badeac.chunk.css b/portal-ui/build/static/css/343.90c9cdc7.chunk.css
similarity index 99%
rename from portal-ui/build/static/css/343.d0badeac.chunk.css
rename to portal-ui/build/static/css/343.90c9cdc7.chunk.css
index acbcca4e4..1aaf9e3a2 100644
--- a/portal-ui/build/static/css/343.d0badeac.chunk.css
+++ b/portal-ui/build/static/css/343.90c9cdc7.chunk.css
@@ -1,2 +1,2 @@
@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=343.d0badeac.chunk.css.map*/
\ No newline at end of file
+/*# sourceMappingURL=343.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/343.d0badeac.chunk.css.map b/portal-ui/build/static/css/343.90c9cdc7.chunk.css.map
similarity index 99%
rename from portal-ui/build/static/css/343.d0badeac.chunk.css.map
rename to portal-ui/build/static/css/343.90c9cdc7.chunk.css.map
index 8c61ea174..f37a38211 100644
--- a/portal-ui/build/static/css/343.d0badeac.chunk.css.map
+++ b/portal-ui/build/static/css/343.90c9cdc7.chunk.css.map
@@ -1 +1 @@
-{"version":3,"file":"static/css/343.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/css/343.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/5503.90c9cdc7.chunk.css b/portal-ui/build/static/css/5503.90c9cdc7.chunk.css
new file mode 100644
index 000000000..e10b234a9
--- /dev/null
+++ b/portal-ui/build/static/css/5503.90c9cdc7.chunk.css
@@ -0,0 +1,2 @@
+@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
+/*# sourceMappingURL=5503.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/5503.90c9cdc7.chunk.css.map b/portal-ui/build/static/css/5503.90c9cdc7.chunk.css.map
new file mode 100644
index 000000000..b56fd4b5c
--- /dev/null
+++ b/portal-ui/build/static/css/5503.90c9cdc7.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/5503.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/5503.d0badeac.chunk.css b/portal-ui/build/static/css/5503.d0badeac.chunk.css
deleted file mode 100644
index 81f622f4e..000000000
--- a/portal-ui/build/static/css/5503.d0badeac.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=5503.d0badeac.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/5503.d0badeac.chunk.css.map b/portal-ui/build/static/css/5503.d0badeac.chunk.css.map
deleted file mode 100644
index fe0e8f877..000000000
--- a/portal-ui/build/static/css/5503.d0badeac.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/5503.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/5517.90c9cdc7.chunk.css b/portal-ui/build/static/css/5517.90c9cdc7.chunk.css
new file mode 100644
index 000000000..b412a396c
--- /dev/null
+++ b/portal-ui/build/static/css/5517.90c9cdc7.chunk.css
@@ -0,0 +1,2 @@
+@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
+/*# sourceMappingURL=5517.90c9cdc7.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/5517.90c9cdc7.chunk.css.map b/portal-ui/build/static/css/5517.90c9cdc7.chunk.css.map
new file mode 100644
index 000000000..d5664a18b
--- /dev/null
+++ b/portal-ui/build/static/css/5517.90c9cdc7.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/5517.90c9cdc7.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/8614.d0badeac.chunk.css b/portal-ui/build/static/css/8614.d0badeac.chunk.css
deleted file mode 100644
index 5c7048aee..000000000
--- a/portal-ui/build/static/css/8614.d0badeac.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=8614.d0badeac.chunk.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/8614.d0badeac.chunk.css.map b/portal-ui/build/static/css/8614.d0badeac.chunk.css.map
deleted file mode 100644
index e1a274e9b..000000000
--- a/portal-ui/build/static/css/8614.d0badeac.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/8614.d0badeac.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/main.86370216.css b/portal-ui/build/static/css/main.86370216.css
new file mode 100644
index 000000000..b6c35a39c
--- /dev/null
+++ b/portal-ui/build/static/css/main.86370216.css
@@ -0,0 +1,2 @@
+.ReactVirtualized__Table__headerRow{font-weight:700;text-transform:uppercase}.ReactVirtualized__Table__headerRow,.ReactVirtualized__Table__row{align-items:center;display:flex;flex-direction:row}.ReactVirtualized__Table__headerTruncatedText{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ReactVirtualized__Table__headerColumn,.ReactVirtualized__Table__rowColumn{margin-right:10px;min-width:0}.ReactVirtualized__Table__rowColumn{text-overflow:ellipsis;white-space:nowrap}.ReactVirtualized__Table__headerColumn:first-of-type,.ReactVirtualized__Table__rowColumn:first-of-type{margin-left:10px}.ReactVirtualized__Table__sortableHeaderColumn{cursor:pointer}.ReactVirtualized__Table__sortableHeaderIconContainer{align-items:center;display:flex}.ReactVirtualized__Table__sortableHeaderIcon{fill:currentColor;flex:0 0 24px;height:1em;width:1em}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top}.react-grid-item img{pointer-events:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.react-grid-item.resizing{will-change:width,height;z-index:1}.react-grid-item.react-draggable-dragging{transition:none;will-change:transform;z-index:3}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;z-index:2}.react-grid-item>.react-resizable-handle{height:20px;position:absolute;width:20px}.react-grid-item>.react-resizable-handle:after{border-bottom:2px solid rgba(0,0,0,.4);border-right:2px solid rgba(0,0,0,.4);bottom:3px;content:"";height:5px;position:absolute;right:3px;width:5px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;-webkit-transform:rotate(315deg);transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;-webkit-transform:rotate(225deg);transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZaIiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+);background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;box-sizing:border-box;height:20px;padding:0 3px 3px 0;position:absolute;width:20px}.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.react-resizable-handle-e{right:0;-webkit-transform:rotate(315deg);transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-resizable-handle-n{top:0;-webkit-transform:rotate(225deg);transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Lato,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}input.removeArrows::-webkit-inner-spin-button,input.removeArrows::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.removeArrows[type=number]{-moz-appearance:textfield}.min-loader{height:40px;width:40px}#eB8dk2fHKWC2_tr{-webkit-animation:eB8dk2fHKWC2_tr__tr 3s linear infinite normal forwards;animation:eB8dk2fHKWC2_tr__tr 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC2_tr__tr{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(45.236493deg);transform:translate(139.785027px,140.086989px) rotate(45.236493deg)}10%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-197.740907deg);transform:translate(139.785027px,140.086989px) rotate(-197.740907deg)}20%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-108.6deg);transform:translate(139.785027px,140.086989px) rotate(-108.6deg)}30%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.484014deg);transform:translate(139.785027px,140.086989px) rotate(-17.484014deg)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.48deg);transform:translate(139.785027px,140.086989px) rotate(-17.48deg)}43.333333%{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}to{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}}@keyframes eB8dk2fHKWC2_tr__tr{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(45.236493deg);transform:translate(139.785027px,140.086989px) rotate(45.236493deg)}10%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-197.740907deg);transform:translate(139.785027px,140.086989px) rotate(-197.740907deg)}20%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-108.6deg);transform:translate(139.785027px,140.086989px) rotate(-108.6deg)}30%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.484014deg);transform:translate(139.785027px,140.086989px) rotate(-17.484014deg)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.48deg);transform:translate(139.785027px,140.086989px) rotate(-17.48deg)}43.333333%{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}to{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}}#eB8dk2fHKWC2_ts{-webkit-animation:eB8dk2fHKWC2_ts__ts 3s linear infinite normal forwards;animation:eB8dk2fHKWC2_ts__ts 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC2_ts__ts{0%{-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}43.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.101121,.102033);transform:scale(.101121,.102033)}50%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.1);transform:scale(.1)}60%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes eB8dk2fHKWC2_ts__ts{0%{-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}43.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.101121,.102033);transform:scale(.101121,.102033)}50%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.1);transform:scale(.1)}60%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1);transform:scale(1)}}#eB8dk2fHKWC2{-webkit-animation:eB8dk2fHKWC2_c_o 3s linear infinite normal forwards;animation:eB8dk2fHKWC2_c_o 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC2_c_o{0%{opacity:1}6.666667%{opacity:1}10%{opacity:0}13.333333%{opacity:0}20%{opacity:1}30%{opacity:1}36.666667%{opacity:1}40%{opacity:0}to{opacity:0}}@keyframes eB8dk2fHKWC2_c_o{0%{opacity:1}6.666667%{opacity:1}10%{opacity:0}13.333333%{opacity:0}20%{opacity:1}30%{opacity:1}36.666667%{opacity:1}40%{opacity:0}to{opacity:0}}#eB8dk2fHKWC4{-webkit-animation:eB8dk2fHKWC4__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC4__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC4__m{0%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}10%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}20%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}30%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}33.333333%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}43.333333%{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}to{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}}@keyframes eB8dk2fHKWC4__m{0%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}10%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}20%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}30%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}33.333333%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}43.333333%{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}to{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}}#eB8dk2fHKWC6{-webkit-animation:eB8dk2fHKWC6__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC6__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC6__m{0%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}10%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}20%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}30%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}33.333333%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}43.333333%{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}to{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}}@keyframes eB8dk2fHKWC6__m{0%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}10%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}20%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}30%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}33.333333%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}43.333333%{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}to{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}}#eB8dk2fHKWC8{-webkit-animation:eB8dk2fHKWC8__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC8__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC8__m{0%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}10%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}20%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}30%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}33.333333%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}43.333333%{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}to{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}}@keyframes eB8dk2fHKWC8__m{0%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}10%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}20%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}30%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}33.333333%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}43.333333%{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}to{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}}#eB8dk2fHKWC10{-webkit-animation:eB8dk2fHKWC10__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC10__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC10__m{0%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}3.333333%{d:path("M4.90273,88.748028C1.236063,104.534694,0.694614,122.375568,4.181281,138.328902C7.119767,155.82704,18.329955,178.442148,31.722495,188.944182C39.448991,194.869945,48.960631,181.919808,35.808325,167.974185C27.053341,155.46954,26.778713,144.786038,23.180834,130.168643C19.139468,114.899686,18.114526,100.786543,20.952073,87.411869C21.572437,79.045425,6.897064,77.595457,4.916661,86.915441L4.90273,88.748028Z")}10%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}20%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}30%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}33.333333%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}43.333333%{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}to{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}}@keyframes eB8dk2fHKWC10__m{0%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}3.333333%{d:path("M4.90273,88.748028C1.236063,104.534694,0.694614,122.375568,4.181281,138.328902C7.119767,155.82704,18.329955,178.442148,31.722495,188.944182C39.448991,194.869945,48.960631,181.919808,35.808325,167.974185C27.053341,155.46954,26.778713,144.786038,23.180834,130.168643C19.139468,114.899686,18.114526,100.786543,20.952073,87.411869C21.572437,79.045425,6.897064,77.595457,4.916661,86.915441L4.90273,88.748028Z")}10%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}20%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}30%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}33.333333%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}43.333333%{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}to{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}}#eB8dk2fHKWC11_ts{-webkit-animation:eB8dk2fHKWC11_ts__ts 3s linear infinite normal forwards;animation:eB8dk2fHKWC11_ts__ts 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC11_ts__ts{0%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}30%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}43.333333%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}50%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}60%{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}to{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}}@keyframes eB8dk2fHKWC11_ts__ts{0%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}30%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}43.333333%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}50%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}60%{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}to{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}}#eB8dk2fHKWC11{-webkit-animation:eB8dk2fHKWC11_c_o 3s linear infinite normal forwards;animation:eB8dk2fHKWC11_c_o 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC11_c_o{0%{opacity:0}30%{opacity:0}36.666667%{opacity:0}40%{opacity:1}to{opacity:1}}@keyframes eB8dk2fHKWC11_c_o{0%{opacity:0}30%{opacity:0}36.666667%{opacity:0}40%{opacity:1}to{opacity:1}}#eB8dk2fHKWC13_tr{-webkit-animation:eB8dk2fHKWC13_tr__tr 3s linear infinite normal forwards;animation:eB8dk2fHKWC13_tr__tr 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC13_tr__tr{0%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}10%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}20%{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}to{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}}@keyframes eB8dk2fHKWC13_tr__tr{0%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}10%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}20%{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}to{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}}#eB8dk2fHKWC13{-webkit-animation:eB8dk2fHKWC13_c_o 3s linear infinite normal forwards;animation:eB8dk2fHKWC13_c_o 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC13_c_o{0%{opacity:0}6.666667%{opacity:0}10%{opacity:1}13.333333%{opacity:1}20%{opacity:0}to{opacity:0}}@keyframes eB8dk2fHKWC13_c_o{0%{opacity:0}6.666667%{opacity:0}10%{opacity:1}13.333333%{opacity:1}20%{opacity:0}to{opacity:0}}
+/*# sourceMappingURL=main.86370216.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/main.86370216.css.map b/portal-ui/build/static/css/main.86370216.css.map
new file mode 100644
index 000000000..c5f6bfc4c
--- /dev/null
+++ b/portal-ui/build/static/css/main.86370216.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/main.86370216.css","mappings":"AAwBA,oCACE,eAAgB,CAChB,wBAIF,CACA,kEAFE,kBAAmB,CAFnB,YAAa,CACb,kBAOF,CAEA,8CACE,oBAAqB,CACrB,cAAe,CAGf,eAAgB,CADhB,sBAAuB,CADvB,kBAGF,CAEA,2EAEE,iBAAkB,CAClB,WACF,CACA,oCACE,sBAAuB,CACvB,kBACF,CAEA,uGAEE,gBACF,CACA,+CACE,cACF,CAEA,sDAEE,kBAAmB,CADnB,YAEF,CACA,6CAIE,iBAAkB,CAHlB,aAAc,CACd,UAAW,CACX,SAEF,CCxEA,mBACE,iBAAkB,CAClB,0BACF,CACA,iBACE,uBAA0B,CAC1B,4BACF,CACA,qBACE,mBAAoB,CACpB,wBAAiB,CAAjB,oBAAiB,CAAjB,gBACF,CACA,+BACE,qCAA8B,CAA9B,6BAA8B,CAA9B,+CACF,CACA,0BAEE,wBAA0B,CAD1B,SAEF,CAEA,0CACE,eAAgB,CAEhB,qBAAsB,CADtB,SAEF,CAEA,0BACE,iBACF,CAEA,wCACE,cAAe,CACf,UAAY,CACZ,uBAA0B,CAE1B,wBAAyB,CAEzB,oBAAqB,CACrB,mBAAoB,CACpB,gBAAiB,CALjB,SAMF,CAEA,yCAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,+CAQE,sCAA2C,CAD3C,qCAA0C,CAH1C,UAAW,CAHX,UAAW,CAKX,UAAW,CAJX,iBAAkB,CAClB,SAAU,CAEV,SAIF,CAEA,8CACE,YACF,CAEA,mEACE,QAAS,CAET,gBAAiB,CADjB,MAAO,CAEP,+BAAwB,CAAxB,uBACF,CACA,mEACE,QAAS,CAET,gBAAiB,CADjB,OAEF,CACA,mEAGE,gBAAiB,CADjB,MAAO,CADP,KAAM,CAGN,gCAAyB,CAAzB,wBACF,CACA,mEAGE,gBAAiB,CADjB,OAAQ,CADR,KAAM,CAGN,gCAAyB,CAAzB,wBACF,CACA,oIAIE,gBAAiB,CADjB,gBAAiB,CADjB,OAGF,CACA,kEACE,MAAO,CACP,gCAAyB,CAAzB,wBACF,CACA,kEACE,OAAQ,CACR,gCAAyB,CAAzB,wBACF,CACA,oIAIE,gBAAiB,CAFjB,QAAS,CACT,iBAEF,CACA,kEACE,KAAM,CACN,gCAAyB,CAAzB,wBACF,CACA,kEACE,QAAS,CACT,+BAAwB,CAAxB,uBACF,CCjHA,iBACE,iBACF,CACA,wBAOE,wPAAuY,CAFvY,6BAA8B,CAG9B,6BAAiC,CAJjC,2BAA4B,CAE5B,qBAAsB,CAHtB,WAAY,CAMZ,mBAAoB,CARpB,iBAAkB,CAClB,UAQF,CACA,2BACE,QAAS,CAET,gBAAiB,CADjB,MAAO,CAEP,+BAAwB,CAAxB,uBACF,CACA,2BACE,QAAS,CAET,gBAAiB,CADjB,OAEF,CACA,2BAGE,gBAAiB,CADjB,MAAO,CADP,KAAM,CAGN,gCAAyB,CAAzB,wBACF,CACA,2BAGE,gBAAiB,CADjB,OAAQ,CADR,KAAM,CAGN,gCAAyB,CAAzB,wBACF,CACA,oDAIE,gBAAiB,CADjB,gBAAiB,CADjB,OAGF,CACA,0BACE,MAAO,CACP,gCAAyB,CAAzB,wBACF,CACA,0BACE,OAAQ,CACR,gCAAyB,CAAzB,wBACF,CACA,oDAIE,gBAAiB,CAFjB,QAAS,CACT,iBAEF,CACA,0BACE,KAAM,CACN,gCAAyB,CAAzB,wBACF,CACA,0BACE,QAAS,CACT,+BAAwB,CAAxB,uBACF,CChEA,KAGE,kCAAmC,CACnC,iCAAkC,CAFlC,2BAA+B,CAD/B,QAIF,CAEA,KACE,uEAEF,CAGA,4FAEE,uBAAwB,CACxB,QACF,CAGA,gCACE,yBACF,CCtBA,YAEE,WAAY,CADZ,UAEF,CAEA,iBACE,wEAAqE,CAArE,gEACF,CAEA,uCACE,GAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2EAAqE,CAArE,mEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,6EAAuE,CAAvE,qEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,4EAAsE,CAAtE,oEAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,WACE,4EAAsE,CAAtE,oEACF,CACA,GACE,4EAAsE,CAAtE,oEACF,CACF,CA3BA,+BACE,GAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2EAAqE,CAArE,mEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,6EAAuE,CAAvE,qEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,4EAAsE,CAAtE,oEAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,WACE,4EAAsE,CAAtE,oEACF,CACA,GACE,4EAAsE,CAAtE,oEACF,CACF,CAEA,iBACE,wEAAqE,CAArE,gEACF,CAEA,uCACE,GACE,iCAA6B,CAA7B,yBACF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,iCAA6B,CAA7B,yBAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wCAAoC,CAApC,gCAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2BAA0B,CAA1B,mBAEF,CACA,IACE,0BAAsB,CAAtB,kBACF,CACA,GACE,0BAAsB,CAAtB,kBACF,CACF,CAtBA,+BACE,GACE,iCAA6B,CAA7B,yBACF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,iCAA6B,CAA7B,yBAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wCAAoC,CAApC,gCAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2BAA0B,CAA1B,mBAEF,CACA,IACE,0BAAsB,CAAtB,kBACF,CACA,GACE,0BAAsB,CAAtB,kBACF,CACF,CAEA,cACE,qEAAkE,CAAlE,6DACF,CAEA,oCACE,GACE,SACF,CACA,UACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CA5BA,4BACE,GACE,SACF,CACA,UACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CAEA,cACE,oEAAiE,CAAjE,4DACF,CAEA,mCACE,GACE,ySAGF,CACA,IACE,uXAGF,CACA,IACE,uXAGF,CACA,IACE,ySAGF,CACA,WACE,ySAGF,CACA,WACE,6XAGF,CACA,GACE,6XAGF,CACF,CApCA,2BACE,GACE,ySAGF,CACA,IACE,uXAGF,CACA,IACE,uXAGF,CACA,IACE,ySAGF,CACA,WACE,ySAGF,CACA,WACE,6XAGF,CACA,GACE,6XAGF,CACF,CAEA,cACE,oEAAiE,CAAjE,4DACF,CAEA,mCACE,GACE,+SAGF,CACA,IACE,2eAGF,CACA,IACE,2eAGF,CACA,IACE,+SAGF,CACA,WACE,+SAGF,CACA,WACE,uaAGF,CACA,GACE,uaAGF,CACF,CApCA,2BACE,GACE,+SAGF,CACA,IACE,2eAGF,CACA,IACE,2eAGF,CACA,IACE,+SAGF,CACA,WACE,+SAGF,CACA,WACE,uaAGF,CACA,GACE,uaAGF,CACF,CAEA,cACE,oEAAiE,CAAjE,4DACF,CAEA,mCACE,GACE,kRAGF,CACA,IACE,ycAGF,CACA,IACE,ycAGF,CACA,IACE,kRAGF,CACA,WACE,kRAGF,CACA,WACE,+aAGF,CACA,GACE,+aAGF,CACF,CApCA,2BACE,GACE,kRAGF,CACA,IACE,ycAGF,CACA,IACE,ycAGF,CACA,IACE,kRAGF,CACA,WACE,kRAGF,CACA,WACE,+aAGF,CACA,GACE,+aAGF,CACF,CAEA,eACE,qEAAkE,CAAlE,6DACF,CAEA,oCACE,GACE,+PAGF,CACA,UACE,6ZAGF,CACA,IACE,gZAGF,CACA,IACE,gZAGF,CACA,IACE,+PAGF,CACA,WACE,+PAGF,CACA,WACE,wYAGF,CACA,GACE,wYAGF,CACF,CAzCA,4BACE,GACE,+PAGF,CACA,UACE,6ZAGF,CACA,IACE,gZAGF,CACA,IACE,gZAGF,CACA,IACE,+PAGF,CACA,WACE,+PAGF,CACA,WACE,wYAGF,CACA,GACE,wYAGF,CACF,CAEA,kBACE,yEAAsE,CAAtE,iEACF,CAEA,wCACE,GACE,+DAA4D,CAA5D,uDACF,CACA,IACE,+DAA4D,CAA5D,uDACF,CACA,WACE,qEAA0E,CAA1E,6DACF,CACA,IACE,qEAA0E,CAA1E,6DACF,CACA,IACE,sEAA0E,CAA1E,8DACF,CACA,GACE,sEAA0E,CAA1E,8DACF,CACF,CAnBA,gCACE,GACE,+DAA4D,CAA5D,uDACF,CACA,IACE,+DAA4D,CAA5D,uDACF,CACA,WACE,qEAA0E,CAA1E,6DACF,CACA,IACE,qEAA0E,CAA1E,6DACF,CACA,IACE,sEAA0E,CAA1E,8DACF,CACA,GACE,sEAA0E,CAA1E,8DACF,CACF,CAEA,eACE,sEAAmE,CAAnE,8DACF,CAEA,qCACE,GACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CAhBA,6BACE,GACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CAEA,kBACE,yEAAsE,CAAtE,iEACF,CAEA,wCACE,GACE,mEAA6D,CAA7D,2DACF,CACA,IACE,mEAA6D,CAA7D,2DACF,CACA,IACE,2EAAqE,CAArE,mEACF,CACA,GACE,2EAAqE,CAArE,mEACF,CACF,CAbA,gCACE,GACE,mEAA6D,CAA7D,2DACF,CACA,IACE,mEAA6D,CAA7D,2DACF,CACA,IACE,2EAAqE,CAArE,mEACF,CACA,GACE,2EAAqE,CAArE,mEACF,CACF,CAEA,eACE,sEAAmE,CAAnE,8DACF,CAEA,qCACE,GACE,SACF,CACA,UACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CAnBA,6BACE,GACE,SACF,CACA,UACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF","sources":["../node_modules/react-virtualized/source/styles.css","../node_modules/react-grid-layout/css/styles.css","../node_modules/react-resizable/css/styles.css","index.css","screens/Console/Common/Loader/loader.styles.css"],"sourcesContent":["/* Collection default theme */\n\n.ReactVirtualized__Collection {\n}\n\n.ReactVirtualized__Collection__innerScrollContainer {\n}\n\n/* Grid default theme */\n\n.ReactVirtualized__Grid {\n}\n\n.ReactVirtualized__Grid__innerScrollContainer {\n}\n\n/* Table default theme */\n\n.ReactVirtualized__Table {\n}\n\n.ReactVirtualized__Table__Grid {\n}\n\n.ReactVirtualized__Table__headerRow {\n font-weight: 700;\n text-transform: uppercase;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ReactVirtualized__Table__row {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.ReactVirtualized__Table__headerTruncatedText {\n display: inline-block;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ReactVirtualized__Table__headerColumn,\n.ReactVirtualized__Table__rowColumn {\n margin-right: 10px;\n min-width: 0px;\n}\n.ReactVirtualized__Table__rowColumn {\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ReactVirtualized__Table__headerColumn:first-of-type,\n.ReactVirtualized__Table__rowColumn:first-of-type {\n margin-left: 10px;\n}\n.ReactVirtualized__Table__sortableHeaderColumn {\n cursor: pointer;\n}\n\n.ReactVirtualized__Table__sortableHeaderIconContainer {\n display: flex;\n align-items: center;\n}\n.ReactVirtualized__Table__sortableHeaderIcon {\n flex: 0 0 24px;\n height: 1em;\n width: 1em;\n fill: currentColor;\n}\n\n/* List default theme */\n\n.ReactVirtualized__List {\n}\n",".react-grid-layout {\n position: relative;\n transition: height 200ms ease;\n}\n.react-grid-item {\n transition: all 200ms ease;\n transition-property: left, top;\n}\n.react-grid-item img {\n pointer-events: none;\n user-select: none; \n}\n.react-grid-item.cssTransforms {\n transition-property: transform;\n}\n.react-grid-item.resizing {\n z-index: 1;\n will-change: width, height;\n}\n\n.react-grid-item.react-draggable-dragging {\n transition: none;\n z-index: 3;\n will-change: transform;\n}\n\n.react-grid-item.dropping {\n visibility: hidden;\n}\n\n.react-grid-item.react-grid-placeholder {\n background: red;\n opacity: 0.2;\n transition-duration: 100ms;\n z-index: 2;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n}\n\n.react-grid-item > .react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n}\n\n.react-grid-item > .react-resizable-handle::after {\n content: \"\";\n position: absolute;\n right: 3px;\n bottom: 3px;\n width: 5px;\n height: 5px;\n border-right: 2px solid rgba(0, 0, 0, 0.4);\n border-bottom: 2px solid rgba(0, 0, 0, 0.4);\n}\n\n.react-resizable-hide > .react-resizable-handle {\n display: none;\n}\n\n.react-grid-item > .react-resizable-handle.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-w,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-n,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}\n",".react-resizable {\n position: relative;\n}\n.react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n background-repeat: no-repeat;\n background-origin: content-box;\n box-sizing: border-box;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');\n background-position: bottom right;\n padding: 0 3px 3px 0;\n}\n.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-resizable-handle-w,\n.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-resizable-handle-n,\n.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}","body {\n margin: 0;\n font-family: \"Lato\", sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\",\n monospace;\n}\n\n/* Chrome, Safari, Edge, Opera */\ninput.removeArrows::-webkit-outer-spin-button,\ninput.removeArrows::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput.removeArrows[type=\"number\"] {\n -moz-appearance: textfield;\n}\n",".min-loader {\n width: 40px;\n height: 40px;\n}\n\n#eB8dk2fHKWC2_tr {\n animation: eB8dk2fHKWC2_tr__tr 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC2_tr__tr {\n 0% {\n transform: translate(139.785027px, 140.086989px) rotate(45.236493deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 10% {\n transform: translate(139.785027px, 140.086989px) rotate(-197.740907deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 20% {\n transform: translate(139.785027px, 140.086989px) rotate(-108.6deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 30% {\n transform: translate(139.785027px, 140.086989px) rotate(-17.484014deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 33.333333% {\n transform: translate(139.785027px, 140.086989px) rotate(-17.48deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 43.333333% {\n transform: translate(139.785027px, 140.086989px) rotate(160.887995deg);\n }\n 100% {\n transform: translate(139.785027px, 140.086989px) rotate(160.887995deg);\n }\n}\n\n#eB8dk2fHKWC2_ts {\n animation: eB8dk2fHKWC2_ts__ts 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC2_ts__ts {\n 0% {\n transform: scale(1, 0.995019);\n }\n 33.333333% {\n transform: scale(1, 0.995019);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 43.333333% {\n transform: scale(0.101121, 0.102033);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 50% {\n transform: scale(0.1, 0.1);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 60% {\n transform: scale(1, 1);\n }\n 100% {\n transform: scale(1, 1);\n }\n}\n\n#eB8dk2fHKWC2 {\n animation: eB8dk2fHKWC2_c_o 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC2_c_o {\n 0% {\n opacity: 1;\n }\n 6.666667% {\n opacity: 1;\n }\n 10% {\n opacity: 0;\n }\n 13.333333% {\n opacity: 0;\n }\n 20% {\n opacity: 1;\n }\n 30% {\n opacity: 1;\n }\n 36.666667% {\n opacity: 1;\n }\n 40% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n\n#eB8dk2fHKWC4 {\n animation: eB8dk2fHKWC4__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC4__m {\n 0% {\n d: path(\n \"M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 10% {\n d: path(\n \"M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 20% {\n d: path(\n \"M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 30% {\n d: path(\n \"M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z\"\n );\n }\n 100% {\n d: path(\n \"M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z\"\n );\n }\n}\n\n#eB8dk2fHKWC6 {\n animation: eB8dk2fHKWC6__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC6__m {\n 0% {\n d: path(\n \"M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z\"\n );\n }\n 10% {\n d: path(\n \"M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z\"\n );\n }\n 20% {\n d: path(\n \"M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z\"\n );\n }\n 30% {\n d: path(\n \"M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z\"\n );\n }\n 100% {\n d: path(\n \"M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z\"\n );\n }\n}\n\n#eB8dk2fHKWC8 {\n animation: eB8dk2fHKWC8__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC8__m {\n 0% {\n d: path(\n \"M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z\"\n );\n }\n 10% {\n d: path(\n \"M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z\"\n );\n }\n 20% {\n d: path(\n \"M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z\"\n );\n }\n 30% {\n d: path(\n \"M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z\"\n );\n }\n 100% {\n d: path(\n \"M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z\"\n );\n }\n}\n\n#eB8dk2fHKWC10 {\n animation: eB8dk2fHKWC10__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC10__m {\n 0% {\n d: path(\n \"M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z\"\n );\n }\n 3.333333% {\n d: path(\n \"M4.90273,88.748028C1.236063,104.534694,0.694614,122.375568,4.181281,138.328902C7.119767,155.82704,18.329955,178.442148,31.722495,188.944182C39.448991,194.869945,48.960631,181.919808,35.808325,167.974185C27.053341,155.46954,26.778713,144.786038,23.180834,130.168643C19.139468,114.899686,18.114526,100.786543,20.952073,87.411869C21.572437,79.045425,6.897064,77.595457,4.916661,86.915441L4.90273,88.748028Z\"\n );\n }\n 10% {\n d: path(\n \"M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z\"\n );\n }\n 20% {\n d: path(\n \"M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z\"\n );\n }\n 30% {\n d: path(\n \"M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z\"\n );\n }\n 100% {\n d: path(\n \"M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z\"\n );\n }\n}\n\n#eB8dk2fHKWC11_ts {\n animation: eB8dk2fHKWC11_ts__ts 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC11_ts__ts {\n 0% {\n transform: translate(139.784999px, 140.086986px) scale(1, 1);\n }\n 30% {\n transform: translate(139.784999px, 140.086986px) scale(1, 1);\n }\n 43.333333% {\n transform: translate(139.784999px, 140.086986px) scale(0.102813, 0.102813);\n }\n 50% {\n transform: translate(139.784999px, 140.086986px) scale(0.102813, 0.102813);\n }\n 60% {\n transform: translate(139.784999px, 140.086986px) scale(1.001075, 1.001075);\n }\n 100% {\n transform: translate(139.784999px, 140.086986px) scale(1.001075, 1.001075);\n }\n}\n\n#eB8dk2fHKWC11 {\n animation: eB8dk2fHKWC11_c_o 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC11_c_o {\n 0% {\n opacity: 0;\n }\n 30% {\n opacity: 0;\n }\n 36.666667% {\n opacity: 0;\n }\n 40% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n\n#eB8dk2fHKWC13_tr {\n animation: eB8dk2fHKWC13_tr__tr 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC13_tr__tr {\n 0% {\n transform: translate(139.785004px, 140.086979px) rotate(0deg);\n }\n 10% {\n transform: translate(139.785004px, 140.086979px) rotate(0deg);\n }\n 20% {\n transform: translate(139.785004px, 140.086979px) rotate(90.041277deg);\n }\n 100% {\n transform: translate(139.785004px, 140.086979px) rotate(90.041277deg);\n }\n}\n\n#eB8dk2fHKWC13 {\n animation: eB8dk2fHKWC13_c_o 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC13_c_o {\n 0% {\n opacity: 0;\n }\n 6.666667% {\n opacity: 0;\n }\n 10% {\n opacity: 1;\n }\n 13.333333% {\n opacity: 1;\n }\n 20% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/css/main.90d417ae.css b/portal-ui/build/static/css/main.90d417ae.css
deleted file mode 100644
index 3d8310cea..000000000
--- a/portal-ui/build/static/css/main.90d417ae.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.min-loader{height:40px;width:40px}#eB8dk2fHKWC2_tr{-webkit-animation:eB8dk2fHKWC2_tr__tr 3s linear infinite normal forwards;animation:eB8dk2fHKWC2_tr__tr 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC2_tr__tr{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(45.236493deg);transform:translate(139.785027px,140.086989px) rotate(45.236493deg)}10%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-197.740907deg);transform:translate(139.785027px,140.086989px) rotate(-197.740907deg)}20%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-108.6deg);transform:translate(139.785027px,140.086989px) rotate(-108.6deg)}30%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.484014deg);transform:translate(139.785027px,140.086989px) rotate(-17.484014deg)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.48deg);transform:translate(139.785027px,140.086989px) rotate(-17.48deg)}43.333333%{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}to{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}}@keyframes eB8dk2fHKWC2_tr__tr{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(45.236493deg);transform:translate(139.785027px,140.086989px) rotate(45.236493deg)}10%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-197.740907deg);transform:translate(139.785027px,140.086989px) rotate(-197.740907deg)}20%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-108.6deg);transform:translate(139.785027px,140.086989px) rotate(-108.6deg)}30%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.484014deg);transform:translate(139.785027px,140.086989px) rotate(-17.484014deg)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:translate(139.785027px,140.086989px) rotate(-17.48deg);transform:translate(139.785027px,140.086989px) rotate(-17.48deg)}43.333333%{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}to{-webkit-transform:translate(139.785027px,140.086989px) rotate(160.887995deg);transform:translate(139.785027px,140.086989px) rotate(160.887995deg)}}#eB8dk2fHKWC2_ts{-webkit-animation:eB8dk2fHKWC2_ts__ts 3s linear infinite normal forwards;animation:eB8dk2fHKWC2_ts__ts 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC2_ts__ts{0%{-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}43.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.101121,.102033);transform:scale(.101121,.102033)}50%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.1);transform:scale(.1)}60%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes eB8dk2fHKWC2_ts__ts{0%{-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}33.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scaleY(.995019);transform:scaleY(.995019)}43.333333%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.101121,.102033);transform:scale(.101121,.102033)}50%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-transform:scale(.1);transform:scale(.1)}60%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1);transform:scale(1)}}#eB8dk2fHKWC2{-webkit-animation:eB8dk2fHKWC2_c_o 3s linear infinite normal forwards;animation:eB8dk2fHKWC2_c_o 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC2_c_o{0%{opacity:1}6.666667%{opacity:1}10%{opacity:0}13.333333%{opacity:0}20%{opacity:1}30%{opacity:1}36.666667%{opacity:1}40%{opacity:0}to{opacity:0}}@keyframes eB8dk2fHKWC2_c_o{0%{opacity:1}6.666667%{opacity:1}10%{opacity:0}13.333333%{opacity:0}20%{opacity:1}30%{opacity:1}36.666667%{opacity:1}40%{opacity:0}to{opacity:0}}#eB8dk2fHKWC4{-webkit-animation:eB8dk2fHKWC4__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC4__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC4__m{0%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}10%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}20%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}30%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}33.333333%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}43.333333%{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}to{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}}@keyframes eB8dk2fHKWC4__m{0%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}10%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}20%{d:path("M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}30%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}33.333333%{d:path("M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z")}43.333333%{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}to{d:path("M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z")}}#eB8dk2fHKWC6{-webkit-animation:eB8dk2fHKWC6__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC6__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC6__m{0%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}10%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}20%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}30%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}33.333333%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}43.333333%{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}to{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}}@keyframes eB8dk2fHKWC6__m{0%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}10%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}20%{d:path("M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z")}30%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}33.333333%{d:path("M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z")}43.333333%{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}to{d:path("M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z")}}#eB8dk2fHKWC8{-webkit-animation:eB8dk2fHKWC8__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC8__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC8__m{0%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}10%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}20%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}30%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}33.333333%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}43.333333%{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}to{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}}@keyframes eB8dk2fHKWC8__m{0%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}10%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}20%{d:path("M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z")}30%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}33.333333%{d:path("M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z")}43.333333%{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}to{d:path("M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z")}}#eB8dk2fHKWC10{-webkit-animation:eB8dk2fHKWC10__m 3s linear infinite normal forwards;animation:eB8dk2fHKWC10__m 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC10__m{0%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}3.333333%{d:path("M4.90273,88.748028C1.236063,104.534694,0.694614,122.375568,4.181281,138.328902C7.119767,155.82704,18.329955,178.442148,31.722495,188.944182C39.448991,194.869945,48.960631,181.919808,35.808325,167.974185C27.053341,155.46954,26.778713,144.786038,23.180834,130.168643C19.139468,114.899686,18.114526,100.786543,20.952073,87.411869C21.572437,79.045425,6.897064,77.595457,4.916661,86.915441L4.90273,88.748028Z")}10%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}20%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}30%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}33.333333%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}43.333333%{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}to{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}}@keyframes eB8dk2fHKWC10__m{0%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}3.333333%{d:path("M4.90273,88.748028C1.236063,104.534694,0.694614,122.375568,4.181281,138.328902C7.119767,155.82704,18.329955,178.442148,31.722495,188.944182C39.448991,194.869945,48.960631,181.919808,35.808325,167.974185C27.053341,155.46954,26.778713,144.786038,23.180834,130.168643C19.139468,114.899686,18.114526,100.786543,20.952073,87.411869C21.572437,79.045425,6.897064,77.595457,4.916661,86.915441L4.90273,88.748028Z")}10%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}20%{d:path("M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z")}30%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}33.333333%{d:path("M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z")}43.333333%{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}to{d:path("M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z")}}#eB8dk2fHKWC11_ts{-webkit-animation:eB8dk2fHKWC11_ts__ts 3s linear infinite normal forwards;animation:eB8dk2fHKWC11_ts__ts 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC11_ts__ts{0%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}30%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}43.333333%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}50%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}60%{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}to{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}}@keyframes eB8dk2fHKWC11_ts__ts{0%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}30%{-webkit-transform:translate(139.784999px,140.086986px) scale(1);transform:translate(139.784999px,140.086986px) scale(1)}43.333333%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}50%{-webkit-transform:translate(139.784999px,140.086986px) scale(.102813);transform:translate(139.784999px,140.086986px) scale(.102813)}60%{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}to{-webkit-transform:translate(139.784999px,140.086986px) scale(1.001075);transform:translate(139.784999px,140.086986px) scale(1.001075)}}#eB8dk2fHKWC11{-webkit-animation:eB8dk2fHKWC11_c_o 3s linear infinite normal forwards;animation:eB8dk2fHKWC11_c_o 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC11_c_o{0%{opacity:0}30%{opacity:0}36.666667%{opacity:0}40%{opacity:1}to{opacity:1}}@keyframes eB8dk2fHKWC11_c_o{0%{opacity:0}30%{opacity:0}36.666667%{opacity:0}40%{opacity:1}to{opacity:1}}#eB8dk2fHKWC13_tr{-webkit-animation:eB8dk2fHKWC13_tr__tr 3s linear infinite normal forwards;animation:eB8dk2fHKWC13_tr__tr 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC13_tr__tr{0%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}10%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}20%{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}to{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}}@keyframes eB8dk2fHKWC13_tr__tr{0%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}10%{-webkit-transform:translate(139.785004px,140.086979px) rotate(0deg);transform:translate(139.785004px,140.086979px) rotate(0deg)}20%{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}to{-webkit-transform:translate(139.785004px,140.086979px) rotate(90.041277deg);transform:translate(139.785004px,140.086979px) rotate(90.041277deg)}}#eB8dk2fHKWC13{-webkit-animation:eB8dk2fHKWC13_c_o 3s linear infinite normal forwards;animation:eB8dk2fHKWC13_c_o 3s linear infinite normal forwards}@-webkit-keyframes eB8dk2fHKWC13_c_o{0%{opacity:0}6.666667%{opacity:0}10%{opacity:1}13.333333%{opacity:1}20%{opacity:0}to{opacity:0}}@keyframes eB8dk2fHKWC13_c_o{0%{opacity:0}6.666667%{opacity:0}10%{opacity:1}13.333333%{opacity:1}20%{opacity:0}to{opacity:0}}.ReactVirtualized__Table__headerRow{font-weight:700;text-transform:uppercase}.ReactVirtualized__Table__headerRow,.ReactVirtualized__Table__row{align-items:center;display:flex;flex-direction:row}.ReactVirtualized__Table__headerTruncatedText{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ReactVirtualized__Table__headerColumn,.ReactVirtualized__Table__rowColumn{margin-right:10px;min-width:0}.ReactVirtualized__Table__rowColumn{text-overflow:ellipsis;white-space:nowrap}.ReactVirtualized__Table__headerColumn:first-of-type,.ReactVirtualized__Table__rowColumn:first-of-type{margin-left:10px}.ReactVirtualized__Table__sortableHeaderColumn{cursor:pointer}.ReactVirtualized__Table__sortableHeaderIconContainer{align-items:center;display:flex}.ReactVirtualized__Table__sortableHeaderIcon{fill:currentColor;flex:0 0 24px;height:1em;width:1em}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top}.react-grid-item img{pointer-events:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.react-grid-item.resizing{will-change:width,height;z-index:1}.react-grid-item.react-draggable-dragging{transition:none;will-change:transform;z-index:3}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;z-index:2}.react-grid-item>.react-resizable-handle{height:20px;position:absolute;width:20px}.react-grid-item>.react-resizable-handle:after{border-bottom:2px solid rgba(0,0,0,.4);border-right:2px solid rgba(0,0,0,.4);bottom:3px;content:"";height:5px;position:absolute;right:3px;width:5px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;-webkit-transform:rotate(315deg);transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;-webkit-transform:rotate(225deg);transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZaIiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+);background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;box-sizing:border-box;height:20px;padding:0 3px 3px 0;position:absolute;width:20px}.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.react-resizable-handle-e{right:0;-webkit-transform:rotate(315deg);transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-resizable-handle-n{top:0;-webkit-transform:rotate(225deg);transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Lato,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}input.removeArrows::-webkit-inner-spin-button,input.removeArrows::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.removeArrows[type=number]{-moz-appearance:textfield}
-/*# sourceMappingURL=main.90d417ae.css.map*/
\ No newline at end of file
diff --git a/portal-ui/build/static/css/main.90d417ae.css.map b/portal-ui/build/static/css/main.90d417ae.css.map
deleted file mode 100644
index c5b04ab3e..000000000
--- a/portal-ui/build/static/css/main.90d417ae.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/main.90d417ae.css","mappings":"AAAA,YAEE,WAAY,CADZ,UAEF,CAEA,iBACE,wEAAqE,CAArE,gEACF,CAEA,uCACE,GAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2EAAqE,CAArE,mEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,6EAAuE,CAAvE,qEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,4EAAsE,CAAtE,oEAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,WACE,4EAAsE,CAAtE,oEACF,CACA,GACE,4EAAsE,CAAtE,oEACF,CACF,CA3BA,+BACE,GAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2EAAqE,CAArE,mEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,6EAAuE,CAAvE,qEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,4EAAsE,CAAtE,oEAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wEAAkE,CAAlE,gEAEF,CACA,WACE,4EAAsE,CAAtE,oEACF,CACA,GACE,4EAAsE,CAAtE,oEACF,CACF,CAEA,iBACE,wEAAqE,CAArE,gEACF,CAEA,uCACE,GACE,iCAA6B,CAA7B,yBACF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,iCAA6B,CAA7B,yBAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wCAAoC,CAApC,gCAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2BAA0B,CAA1B,mBAEF,CACA,IACE,0BAAsB,CAAtB,kBACF,CACA,GACE,0BAAsB,CAAtB,kBACF,CACF,CAtBA,+BACE,GACE,iCAA6B,CAA7B,yBACF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,iCAA6B,CAA7B,yBAEF,CACA,WAEE,6CAAyD,CAAzD,qCAAyD,CADzD,wCAAoC,CAApC,gCAEF,CACA,IAEE,6CAAyD,CAAzD,qCAAyD,CADzD,2BAA0B,CAA1B,mBAEF,CACA,IACE,0BAAsB,CAAtB,kBACF,CACA,GACE,0BAAsB,CAAtB,kBACF,CACF,CAEA,cACE,qEAAkE,CAAlE,6DACF,CAEA,oCACE,GACE,SACF,CACA,UACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CA5BA,4BACE,GACE,SACF,CACA,UACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CAEA,cACE,oEAAiE,CAAjE,4DACF,CAEA,mCACE,GACE,ySAGF,CACA,IACE,uXAGF,CACA,IACE,uXAGF,CACA,IACE,ySAGF,CACA,WACE,ySAGF,CACA,WACE,6XAGF,CACA,GACE,6XAGF,CACF,CApCA,2BACE,GACE,ySAGF,CACA,IACE,uXAGF,CACA,IACE,uXAGF,CACA,IACE,ySAGF,CACA,WACE,ySAGF,CACA,WACE,6XAGF,CACA,GACE,6XAGF,CACF,CAEA,cACE,oEAAiE,CAAjE,4DACF,CAEA,mCACE,GACE,+SAGF,CACA,IACE,2eAGF,CACA,IACE,2eAGF,CACA,IACE,+SAGF,CACA,WACE,+SAGF,CACA,WACE,uaAGF,CACA,GACE,uaAGF,CACF,CApCA,2BACE,GACE,+SAGF,CACA,IACE,2eAGF,CACA,IACE,2eAGF,CACA,IACE,+SAGF,CACA,WACE,+SAGF,CACA,WACE,uaAGF,CACA,GACE,uaAGF,CACF,CAEA,cACE,oEAAiE,CAAjE,4DACF,CAEA,mCACE,GACE,kRAGF,CACA,IACE,ycAGF,CACA,IACE,ycAGF,CACA,IACE,kRAGF,CACA,WACE,kRAGF,CACA,WACE,+aAGF,CACA,GACE,+aAGF,CACF,CApCA,2BACE,GACE,kRAGF,CACA,IACE,ycAGF,CACA,IACE,ycAGF,CACA,IACE,kRAGF,CACA,WACE,kRAGF,CACA,WACE,+aAGF,CACA,GACE,+aAGF,CACF,CAEA,eACE,qEAAkE,CAAlE,6DACF,CAEA,oCACE,GACE,+PAGF,CACA,UACE,6ZAGF,CACA,IACE,gZAGF,CACA,IACE,gZAGF,CACA,IACE,+PAGF,CACA,WACE,+PAGF,CACA,WACE,wYAGF,CACA,GACE,wYAGF,CACF,CAzCA,4BACE,GACE,+PAGF,CACA,UACE,6ZAGF,CACA,IACE,gZAGF,CACA,IACE,gZAGF,CACA,IACE,+PAGF,CACA,WACE,+PAGF,CACA,WACE,wYAGF,CACA,GACE,wYAGF,CACF,CAEA,kBACE,yEAAsE,CAAtE,iEACF,CAEA,wCACE,GACE,+DAA4D,CAA5D,uDACF,CACA,IACE,+DAA4D,CAA5D,uDACF,CACA,WACE,qEAA0E,CAA1E,6DACF,CACA,IACE,qEAA0E,CAA1E,6DACF,CACA,IACE,sEAA0E,CAA1E,8DACF,CACA,GACE,sEAA0E,CAA1E,8DACF,CACF,CAnBA,gCACE,GACE,+DAA4D,CAA5D,uDACF,CACA,IACE,+DAA4D,CAA5D,uDACF,CACA,WACE,qEAA0E,CAA1E,6DACF,CACA,IACE,qEAA0E,CAA1E,6DACF,CACA,IACE,sEAA0E,CAA1E,8DACF,CACA,GACE,sEAA0E,CAA1E,8DACF,CACF,CAEA,eACE,sEAAmE,CAAnE,8DACF,CAEA,qCACE,GACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CAhBA,6BACE,GACE,SACF,CACA,IACE,SACF,CACA,WACE,SACF,CACA,IACE,SACF,CACA,GACE,SACF,CACF,CAEA,kBACE,yEAAsE,CAAtE,iEACF,CAEA,wCACE,GACE,mEAA6D,CAA7D,2DACF,CACA,IACE,mEAA6D,CAA7D,2DACF,CACA,IACE,2EAAqE,CAArE,mEACF,CACA,GACE,2EAAqE,CAArE,mEACF,CACF,CAbA,gCACE,GACE,mEAA6D,CAA7D,2DACF,CACA,IACE,mEAA6D,CAA7D,2DACF,CACA,IACE,2EAAqE,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","sources":["screens/Console/Common/Loader/loader.styles.css","../node_modules/react-virtualized/source/styles.css","../node_modules/react-grid-layout/css/styles.css","../node_modules/react-resizable/css/styles.css","index.css"],"sourcesContent":[".min-loader {\n width: 40px;\n height: 40px;\n}\n\n#eB8dk2fHKWC2_tr {\n animation: eB8dk2fHKWC2_tr__tr 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC2_tr__tr {\n 0% {\n transform: translate(139.785027px, 140.086989px) rotate(45.236493deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 10% {\n transform: translate(139.785027px, 140.086989px) rotate(-197.740907deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 20% {\n transform: translate(139.785027px, 140.086989px) rotate(-108.6deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 30% {\n transform: translate(139.785027px, 140.086989px) rotate(-17.484014deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 33.333333% {\n transform: translate(139.785027px, 140.086989px) rotate(-17.48deg);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 43.333333% {\n transform: translate(139.785027px, 140.086989px) rotate(160.887995deg);\n }\n 100% {\n transform: translate(139.785027px, 140.086989px) rotate(160.887995deg);\n }\n}\n\n#eB8dk2fHKWC2_ts {\n animation: eB8dk2fHKWC2_ts__ts 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC2_ts__ts {\n 0% {\n transform: scale(1, 0.995019);\n }\n 33.333333% {\n transform: scale(1, 0.995019);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 43.333333% {\n transform: scale(0.101121, 0.102033);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 50% {\n transform: scale(0.1, 0.1);\n animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);\n }\n 60% {\n transform: scale(1, 1);\n }\n 100% {\n transform: scale(1, 1);\n }\n}\n\n#eB8dk2fHKWC2 {\n animation: eB8dk2fHKWC2_c_o 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC2_c_o {\n 0% {\n opacity: 1;\n }\n 6.666667% {\n opacity: 1;\n }\n 10% {\n opacity: 0;\n }\n 13.333333% {\n opacity: 0;\n }\n 20% {\n opacity: 1;\n }\n 30% {\n opacity: 1;\n }\n 36.666667% {\n opacity: 1;\n }\n 40% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n\n#eB8dk2fHKWC4 {\n animation: eB8dk2fHKWC4__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC4__m {\n 0% {\n d: path(\n \"M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 10% {\n d: path(\n \"M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 20% {\n d: path(\n \"M85.4,249.8C85.4,249.8,85.399999,249.800001,85.399999,249.800001C85.399999,249.800001,85.4,249.800002,85.4,249.800002C85.4,249.800002,90.484102,251.966034,95.043213,248.269966C100.484052,243.859082,98.694728,236.722769,97.073675,234.469349C95.517658,232.306335,94.559418,231.751273,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 30% {\n d: path(\n \"M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M85.4,249.8C109.08,255.3,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,110.79,235.19,90.73,230.52C78.19,227.61,72.85,246.88,85.4,249.8C85.4,249.8,85.4,249.8,85.4,249.8Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z\"\n );\n }\n 100% {\n d: path(\n \"M84.281285,246.076032C107.50521,254.051555,133.72,257.37,157.65,252.14C181.65,246.89,202.95,233.55,219.27,215.35C227.84,205.79,213.74,191.6,205.13,201.21C190.9,217.1,173.27,228.26,152.34,232.86C132.03,237.32,86.465691,239.82846,53.85604,207.193233C41.31604,204.283233,32.439249,213.928672,40.474905,219.54755C40.474905,219.54755,61.310295,238.187372,84.281285,246.076032Z\"\n );\n }\n}\n\n#eB8dk2fHKWC6 {\n animation: eB8dk2fHKWC6__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC6__m {\n 0% {\n d: path(\n \"M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z\"\n );\n }\n 10% {\n d: path(\n \"M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z\"\n );\n }\n 20% {\n d: path(\n \"M250.887564,168.08137C250.887564,168.081368,250.887563,168.081375,250.887563,168.081375C250.887563,168.081375,253.7831,157.676613,244.778825,154.781475C235.762034,151.882313,232.694053,158.881918,231.752888,162.486547C231.017121,165.304508,231.564293,168.517464,232.231509,169.666243C233.407087,171.690293,235.517449,173.828597,238.467701,174.606956C241.339242,175.364549,245.542656,175.427978,248.770823,172.704057C248.770823,172.704057,250.400569,171.202441,250.887564,168.08137Z\"\n );\n }\n 30% {\n d: path(\n \"M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M249.74,169.63C255.24,145.95,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,191.54,41.29,201.15,49.9C217.04,64.13,228.2,81.76,232.8,102.69C237.26,123,235.13,144.24,230.46,164.3C227.54,176.84,246.82,182.18,249.74,169.63C249.74,169.63,249.74,169.63,249.74,169.63Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z\"\n );\n }\n 100% {\n d: path(\n \"M241.985702,180.287452C255.201364,145.393106,257.31,121.31,252.08,97.38C246.83,73.38,233.49,52.08,215.29,35.76C205.73,27.19,189.760952,38.146938,199.370952,46.756938C229.706596,66.855753,234.126292,101.544407,234.194759,127.574104C235.798839,155.047874,216.192342,185.901625,205.13,201.21C199.980012,208.336696,214.039151,220.128533,219.270001,215.35C219.270001,215.35,237.299554,192.660656,241.985702,180.287452Z\"\n );\n }\n}\n\n#eB8dk2fHKWC8 {\n animation: eB8dk2fHKWC8__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC8__m {\n 0% {\n d: path(\n \"M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z\"\n );\n }\n 10% {\n d: path(\n \"M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z\"\n );\n }\n 20% {\n d: path(\n \"M171.58686,7.8192C164.834536,7.661923,162.882928,13.414575,162.613915,14.669774C162.613914,14.669774,161.858025,17.37084,162.366976,18.743708C162.782522,19.864622,163.527502,21.022768,164.723558,21.957074C165.842173,22.830886,168.859974,24.254302,168.859974,24.254302C168.859974,24.254302,168.859968,24.254306,168.859967,24.254304C181.289967,27.534304,184.046866,11.109212,171.586866,7.819212C171.586866,7.819212,171.58686,7.8192,171.58686,7.8192Z\"\n );\n }\n 30% {\n d: path(\n \"M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M171.68,7.71C148.17,1.51,123.61,-1.28,99.53,3.25C75.39,7.79,53.7,20.49,36.85,38.21C28.01,47.52,41.68,62.11,50.57,52.76C65.27,37.3,83.22,26.66,104.27,22.68C124.7,18.82,145.87,21.58,165.79,26.83C178.22,30.11,184.14,11,171.68,7.71C171.68,7.71,171.68,7.71,171.68,7.71Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z\"\n );\n }\n 100% {\n d: path(\n \"M154.601291,1.547478C127.732134,-3.659063,101.676041,0.16217,89.834975,4.047622C73.018778,9.565582,43.015709,29.967817,36.85,38.21C28.01,47.52,41.568561,62.002759,50.57,52.76C67.005248,35.884138,77.788003,22.937369,100.935291,18.024709C148.028227,8.029949,175.904245,24.591662,199.370952,46.756938C210.775532,51.88401,219.463487,39.878796,215.289997,35.759998C189.664787,10.470596,154.601291,1.547478,154.601291,1.547478Z\"\n );\n }\n}\n\n#eB8dk2fHKWC10 {\n animation: eB8dk2fHKWC10__m 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC10__m {\n 0% {\n d: path(\n \"M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z\"\n );\n }\n 3.333333% {\n d: path(\n \"M4.90273,88.748028C1.236063,104.534694,0.694614,122.375568,4.181281,138.328902C7.119767,155.82704,18.329955,178.442148,31.722495,188.944182C39.448991,194.869945,48.960631,181.919808,35.808325,167.974185C27.053341,155.46954,26.778713,144.786038,23.180834,130.168643C19.139468,114.899686,18.114526,100.786543,20.952073,87.411869C21.572437,79.045425,6.897064,77.595457,4.916661,86.915441L4.90273,88.748028Z\"\n );\n }\n 10% {\n d: path(\n \"M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z\"\n );\n }\n 20% {\n d: path(\n \"M3.04819,95.324083C3.04819,95.324083,5.563842,99.566705,5.563842,99.566705C5.563842,99.566705,11.253926,104.287825,15.031546,103.153927C19.091035,103.791214,24.274539,98.764542,25.851733,95.404259C27.275674,92.370488,25.596139,87.698114,24.002501,85.705929C20.798403,80.519057,13.463578,80.659628,12.636219,80.655608C8.65731,80.636275,3.191193,86.96637,3.089982,89.826322L3.04819,95.324083Z\"\n );\n }\n 30% {\n d: path(\n \"M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z\"\n );\n }\n 33.333333% {\n d: path(\n \"M5.83,85.46C0.33,109.14,-1.74,133.78,3.49,157.71C8.74,181.71,22.08,203.01,40.28,219.33C49.84,227.9,64.03,213.8,54.42,205.19C38.53,190.96,27.37,173.33,22.77,152.4C18.31,132.09,20.44,110.85,25.11,90.79C28.03,78.25,8.75,72.91,5.83,85.46L5.83,85.46Z\"\n );\n }\n 43.333333% {\n d: path(\n \"M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z\"\n );\n }\n 100% {\n d: path(\n \"M36.436007,38.11681C-7.498754,85.801617,-0.826469,134.911183,5.658972,158.164678C15.873566,192.855226,35.43893,215.965329,40.28,219.33C49.84,227.9,63.271136,215.585685,53.661136,206.975685C38.384036,191.128398,25.999041,166.121323,22.77,152.4C12.429986,121.009925,27.020185,73.061168,50.245766,52.61587C65.058304,39.576508,51.054205,23.186387,36.436019,38.116819L36.436007,38.11681Z\"\n );\n }\n}\n\n#eB8dk2fHKWC11_ts {\n animation: eB8dk2fHKWC11_ts__ts 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC11_ts__ts {\n 0% {\n transform: translate(139.784999px, 140.086986px) scale(1, 1);\n }\n 30% {\n transform: translate(139.784999px, 140.086986px) scale(1, 1);\n }\n 43.333333% {\n transform: translate(139.784999px, 140.086986px) scale(0.102813, 0.102813);\n }\n 50% {\n transform: translate(139.784999px, 140.086986px) scale(0.102813, 0.102813);\n }\n 60% {\n transform: translate(139.784999px, 140.086986px) scale(1.001075, 1.001075);\n }\n 100% {\n transform: translate(139.784999px, 140.086986px) scale(1.001075, 1.001075);\n }\n}\n\n#eB8dk2fHKWC11 {\n animation: eB8dk2fHKWC11_c_o 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC11_c_o {\n 0% {\n opacity: 0;\n }\n 30% {\n opacity: 0;\n }\n 36.666667% {\n opacity: 0;\n }\n 40% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n\n#eB8dk2fHKWC13_tr {\n animation: eB8dk2fHKWC13_tr__tr 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC13_tr__tr {\n 0% {\n transform: translate(139.785004px, 140.086979px) rotate(0deg);\n }\n 10% {\n transform: translate(139.785004px, 140.086979px) rotate(0deg);\n }\n 20% {\n transform: translate(139.785004px, 140.086979px) rotate(90.041277deg);\n }\n 100% {\n transform: translate(139.785004px, 140.086979px) rotate(90.041277deg);\n }\n}\n\n#eB8dk2fHKWC13 {\n animation: eB8dk2fHKWC13_c_o 3000ms linear infinite normal forwards;\n}\n\n@keyframes eB8dk2fHKWC13_c_o {\n 0% {\n opacity: 0;\n }\n 6.666667% {\n opacity: 0;\n }\n 10% {\n opacity: 1;\n }\n 13.333333% {\n opacity: 1;\n }\n 20% {\n opacity: 0;\n }\n 100% {\n opacity: 0;\n }\n}\n","/* Collection default theme */\n\n.ReactVirtualized__Collection {\n}\n\n.ReactVirtualized__Collection__innerScrollContainer {\n}\n\n/* Grid default theme */\n\n.ReactVirtualized__Grid {\n}\n\n.ReactVirtualized__Grid__innerScrollContainer {\n}\n\n/* Table default theme */\n\n.ReactVirtualized__Table {\n}\n\n.ReactVirtualized__Table__Grid {\n}\n\n.ReactVirtualized__Table__headerRow {\n font-weight: 700;\n text-transform: uppercase;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.ReactVirtualized__Table__row {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.ReactVirtualized__Table__headerTruncatedText {\n display: inline-block;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ReactVirtualized__Table__headerColumn,\n.ReactVirtualized__Table__rowColumn {\n margin-right: 10px;\n min-width: 0px;\n}\n.ReactVirtualized__Table__rowColumn {\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ReactVirtualized__Table__headerColumn:first-of-type,\n.ReactVirtualized__Table__rowColumn:first-of-type {\n margin-left: 10px;\n}\n.ReactVirtualized__Table__sortableHeaderColumn {\n cursor: pointer;\n}\n\n.ReactVirtualized__Table__sortableHeaderIconContainer {\n display: flex;\n align-items: center;\n}\n.ReactVirtualized__Table__sortableHeaderIcon {\n flex: 0 0 24px;\n height: 1em;\n width: 1em;\n fill: currentColor;\n}\n\n/* List default theme */\n\n.ReactVirtualized__List {\n}\n",".react-grid-layout {\n position: relative;\n transition: height 200ms ease;\n}\n.react-grid-item {\n transition: all 200ms ease;\n transition-property: left, top;\n}\n.react-grid-item img {\n pointer-events: none;\n user-select: none; \n}\n.react-grid-item.cssTransforms {\n transition-property: transform;\n}\n.react-grid-item.resizing {\n z-index: 1;\n will-change: width, height;\n}\n\n.react-grid-item.react-draggable-dragging {\n transition: none;\n z-index: 3;\n will-change: transform;\n}\n\n.react-grid-item.dropping {\n visibility: hidden;\n}\n\n.react-grid-item.react-grid-placeholder {\n background: red;\n opacity: 0.2;\n transition-duration: 100ms;\n z-index: 2;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n user-select: none;\n}\n\n.react-grid-item > .react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n}\n\n.react-grid-item > .react-resizable-handle::after {\n content: \"\";\n position: absolute;\n right: 3px;\n bottom: 3px;\n width: 5px;\n height: 5px;\n border-right: 2px solid rgba(0, 0, 0, 0.4);\n border-bottom: 2px solid rgba(0, 0, 0, 0.4);\n}\n\n.react-resizable-hide > .react-resizable-handle {\n display: none;\n}\n\n.react-grid-item > .react-resizable-handle.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-w,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-n,\n.react-grid-item > .react-resizable-handle.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-grid-item > .react-resizable-handle.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}\n",".react-resizable {\n position: relative;\n}\n.react-resizable-handle {\n position: absolute;\n width: 20px;\n height: 20px;\n background-repeat: no-repeat;\n background-origin: content-box;\n box-sizing: border-box;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+');\n background-position: bottom right;\n padding: 0 3px 3px 0;\n}\n.react-resizable-handle-sw {\n bottom: 0;\n left: 0;\n cursor: sw-resize;\n transform: rotate(90deg);\n}\n.react-resizable-handle-se {\n bottom: 0;\n right: 0;\n cursor: se-resize;\n}\n.react-resizable-handle-nw {\n top: 0;\n left: 0;\n cursor: nw-resize;\n transform: rotate(180deg);\n}\n.react-resizable-handle-ne {\n top: 0;\n right: 0;\n cursor: ne-resize;\n transform: rotate(270deg);\n}\n.react-resizable-handle-w,\n.react-resizable-handle-e {\n top: 50%;\n margin-top: -10px;\n cursor: ew-resize;\n}\n.react-resizable-handle-w {\n left: 0;\n transform: rotate(135deg);\n}\n.react-resizable-handle-e {\n right: 0;\n transform: rotate(315deg);\n}\n.react-resizable-handle-n,\n.react-resizable-handle-s {\n left: 50%;\n margin-left: -10px;\n cursor: ns-resize;\n}\n.react-resizable-handle-n {\n top: 0;\n transform: rotate(225deg);\n}\n.react-resizable-handle-s {\n bottom: 0;\n transform: rotate(45deg);\n}","body {\n margin: 0;\n font-family: \"Lato\", sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\",\n monospace;\n}\n\n/* Chrome, Safari, Edge, Opera */\ninput.removeArrows::-webkit-outer-spin-button,\ninput.removeArrows::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput.removeArrows[type=\"number\"] {\n -moz-appearance: textfield;\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1030.38e91f62.chunk.js b/portal-ui/build/static/js/1030.38e91f62.chunk.js
new file mode 100644
index 000000000..d9f02b3a4
--- /dev/null
+++ b/portal-ui/build/static/js/1030.38e91f62.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1030],{81806:function(e,n,t){var i=t(1413),a=t(45987),o=(t(72791),t(11135)),l=t(25787),r=t(80184),s=["classes","children"];n.Z=(0,l.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,o=(0,a.Z)(e,s);return(0,r.jsx)("button",(0,i.Z)((0,i.Z)({},o),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var i=t(29439),a=t(1413),o=t(72791),l=t(60364),r=t(13400),s=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),v=t(25787),p=t(23814),h=t(81551),f=t(29823),g=t(28057),x=t(87995),Z=t(80184);n.Z=(0,v.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,v=e.children,p=e.classes,j=e.wideLimit,b=void 0===j||j,y=e.noContentPadding,S=e.titleIcon,w=void 0===S?null:S,k=(0,h.TL)(),P=(0,o.useState)(!1),C=(0,i.Z)(P,2),R=C[0],N=C[1],A=(0,l.v9)((function(e){return e.system.modalSnackBar}));(0,o.useEffect)((function(){k((0,x.MK)(""))}),[k]),(0,o.useEffect)((function(){if(A){if(""===A.message)return void N(!1);"error"!==A.type&&N(!0)}}),[A]);var I=b?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return A&&(E=A.detailedErrorMsg,(""===A.detailedErrorMsg||A.detailedErrorMsg.length<5)&&(E=A.message)),(0,Z.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:p},I),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,Z.jsxs)(d.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[w," ",m]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(r.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(f.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(s.Z,{open:R,className:p.snackBarModal,onClose:function(){N(!1),k((0,x.MK)(""))},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(A&&"error"===A.type?p.errorSnackBar:"")},autoHideDuration:A&&"error"===A.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:y?"":p.content,children:v})]}))}))},45902:function(e,n,t){var i=t(1413),a=(t(72791),t(53767)),o=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,l=e.value,r=void 0===l?"-":l,s=e.orientation,c=void 0===s?"column":s,d=e.stkProps,u=void 0===d?{}:d,m=e.lblProps,v=void 0===m?{}:m,p=e.valProps,h=void 0===p?{}:p;return(0,o.jsxs)(a.Z,(0,i.Z)((0,i.Z)({direction:{xs:"column",sm:c}},u),{},{children:[(0,o.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:600}},v),{},{children:t})),(0,o.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:r}))]}))}},74815:function(e,n,t){t.d(n,{Z:function(){return u}});var i=t(93433),a=(t(72791),t(73909)),o=t(21041),l=t(41048),r=t(45248),s=t(3923),c=t(80184),d=function(e){var n=e.totalValue,t=e.sizeItems,i=e.bgColor,a=void 0===i?"#ededed":i;return(0,c.jsx)("div",{style:{width:"100%",height:12,backgroundColor:a,borderRadius:30,display:"flex",transitionDuration:"0.3s",overflow:"hidden"},children:t.map((function(e,t){var i=100*e.value/n;return(0,c.jsx)("div",{style:{width:"".concat(i,"%"),height:"100%",backgroundColor:e.color,transitionDuration:"0.3s"}},"itemSize-".concat(t.toString()))}))})},u=function(e){var n=e.totalCapacity,t=e.usedSpaceVariants,u=e.statusClass,m=e.render,v=void 0===m?"pie":m,p=["#8dacd3","#bca1ea","#92e8d2","#efc9ac","#97f274","#f7d291","#71ACCB","#f28282","#e28cc1","#2781B0"],h="#ededed",f=t.reduce((function(e,n){return e+n.value}),0),g=n-f,x=[],Z=t.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};t.length>10?x=[{value:f-Z.value,color:"#2781B0",label:"Total Tiers Space"}]:x=t.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,n){return{value:e.value,color:p[n],label:"Tier - ".concat(e.variant)}}));var j="#07193E",b=100*Z.value/n;b>=90?j="#C83B51":b>=75&&(j="#FFAB0F");var y=[{value:Z.value,color:j,label:"Used Space by Tenant"}].concat((0,i.Z)(x),[{value:g,color:"bar"===v?h:"transparent",label:"Empty Space"}]);if("bar"===v){var S=y.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,c.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,c.jsx)(d,{totalValue:n,sizeItems:S,bgColor:h})})}return(0,c.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,c.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:u,children:(0,c.jsx)(s.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,c.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(f)?"N/A":(0,r.l5)(f)}),(0,c.jsx)("div",{children:(0,c.jsxs)(a.u,{width:110,height:110,children:[(0,c.jsx)(o.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:h,isAnimationActive:!1,stroke:"none"}),(0,c.jsx)(o.b,{data:y,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:y.map((function(e,n){return(0,c.jsx)(l.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(n))}))})]})})]})}},21353:function(e,n,t){t.r(n),t.d(n,{default:function(){return G}});var i=t(29439),a=t(1413),o=t(72791),l=t(60364),r=t(26181),s=t.n(r),c=t(11135),d=t(25787),u=t(23814),m=t(61889),v=t(64554),p=t(36151),h=t(56028),f=t(21435),g=t(37516),x=t(81207),Z=t(87995),j=t(81551),b=t(80184),y=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({infoText:{fontSize:14}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,l=e.namespace,r=e.idTenant,s=e.classes,c=(0,j.TL)(),d=(0,o.useState)(!1),u=(0,i.Z)(d,2),v=u[0],y=u[1],S=(0,o.useState)(""),w=(0,i.Z)(S,2),k=w[0],P=w[1],C=(0,o.useState)(!1),R=(0,i.Z)(C,2),N=R[0],A=R[1],I=(0,o.useState)(""),E=(0,i.Z)(I,2),D=E[0],F=E[1],_=(0,o.useState)(""),z=(0,i.Z)(_,2),B=z[0],M=z[1],T=(0,o.useState)(""),U=(0,i.Z)(T,2),W=U[0],L=U[1],O=(0,o.useState)(!0),$=(0,i.Z)(O,2),V=$[0],K=$[1],G=(0,o.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)K(n.test(k))}),[k]);(0,o.useEffect)((function(){G("minioImage")}),[k,G]);return(0,b.jsx)(h.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,b.jsx)("div",{className:s.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:k,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){P(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(g.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:N,onChange:function(e){A(!N)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),N&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:D,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){F(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:B,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){M(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.formFieldRow,children:(0,b.jsx)(f.Z,{value:W,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){L(e.target.value)}})})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,b.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){P(""),A(!1),F(""),M(""),L("")},children:"Clear"}),(0,b.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:!V||N&&(""===D.trim()||""===B.trim()||""===W.trim())||v,onClick:function(){y(!0);var e={image:k,enable_prometheus:!0};if(N){var n={image_registry:{registry:D,username:B,password:W}};e=(0,a.Z)((0,a.Z)({},e),n)}x.Z.invoke("PUT","/api/v1/namespaces/".concat(l,"/tenants/").concat(r),e).then((function(){y(!1),t(!0)})).catch((function(e){c((0,Z.zb)(e)),y(!1)}))},children:"Save"})]})]})})})),S=t(81806),w=t(40986),k=t(53767),P=t(3923),C=t(45248),R=t(72401),N=t(74815),A=t(22512),I=t(45902),E=((0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(w.Z),(0,d.Z)((function(e){return(0,c.Z)({centerItem:{textAlign:"center"}})}))((function(e){var n,t,i,a,l,r,s=e.classes,c=e.tenant,d=e.healthStatus,u=e.loading,v=e.error,p={value:"n/a",unit:""},h={value:"n/a",unit:""},f={value:"n/a",unit:""},g={value:"n/a",unit:""},x={value:"n/a",unit:""};if(null!==(n=c.status)&&void 0!==n&&null!==(t=n.usage)&&void 0!==t&&t.raw){var Z=(0,C.ae)("".concat(c.status.usage.raw),!0).split(" ");p.value=Z[0],p.unit=Z[1]}if(null!==(i=c.status)&&void 0!==i&&null!==(a=i.usage)&&void 0!==a&&a.capacity){var j=(0,C.ae)("".concat(c.status.usage.capacity),!0).split(" ");h.value=j[0],h.unit=j[1]}if(null!==(l=c.status)&&void 0!==l&&null!==(r=l.usage)&&void 0!==r&&r.capacity_usage){var y=(0,C.l5)(c.status.usage.capacity_usage,!0).split(" ");f.value=y[0],f.unit=y[1]}var S=[];if(c.tiers&&0!==c.tiers.length){S=c.tiers.map((function(e){return{value:e.size,variant:e.name}}));var w=c.tiers.filter((function(e){return"internal"===e.type})).reduce((function(e,n){return e+n.size}),0),E=c.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,n){return e+n.size}),0),D=(0,C.l5)(E,!0).split(" ");x.value=D[0],x.unit=D[1];var F=(0,C.l5)(w,!0).split(" ");g.value=F[0],g.unit=F[1]}else{var _,z;S=[{value:(null===(_=c.status)||void 0===_||null===(z=_.usage)||void 0===z?void 0:z.capacity_usage)||0,variant:"STANDARD"}]}return(0,b.jsxs)(o.Fragment,{children:[u&&(0,b.jsx)("div",{className:s.padChart,children:(0,b.jsx)(m.ZP,{item:!0,xs:12,className:s.centerItem,children:(0,b.jsx)(R.Z,{style:{width:40,height:40}})})}),function(){var e,n;return u?null:""!==v?(0,b.jsx)(A.Z,{errorMessage:v,withBreak:!1}):(0,b.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,b.jsx)(N.Z,{totalCapacity:(null===(e=c.status)||void 0===e||null===(n=e.usage)||void 0===n?void 0:n.raw)||0,usedSpaceVariants:S,statusClass:"",render:"bar"}),(0,b.jsxs)(k.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"0 0 15px 0",children:[(!c.tiers||0===c.tiers.length)&&(0,b.jsx)(o.Fragment,{children:(0,b.jsx)(I.Z,{label:"Internal:",orientation:"row",value:"".concat(f.value," ").concat(f.unit)})}),c.tiers&&c.tiers.length>0&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(I.Z,{label:"Internal:",orientation:"row",value:"".concat(g.value," ").concat(g.unit)}),(0,b.jsx)(I.Z,{label:"Tiered:",orientation:"row",value:"".concat(x.value," ").concat(x.unit)})]}),d&&(0,b.jsx)(I.Z,{orientation:"row",label:"Health:",value:(0,b.jsx)("span",{className:d,children:(0,b.jsx)(P.J$M,{})})})]})]})}()]})}))),D=t(50896),F=t(40603),_=t(93433),z=t(13400),B=t(42419),M=t(51979),T=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({domainInline:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,a=e.namespace,l=e.idTenant,r=e.domains,s=e.classes,c=(0,j.TL)(),d=(0,o.useState)(!1),u=(0,i.Z)(d,2),v=u[0],g=u[1],y=(0,o.useState)(""),S=(0,i.Z)(y,2),w=S[0],k=S[1],P=(0,o.useState)([""]),C=(0,i.Z)(P,2),R=C[0],N=C[1],A=(0,o.useState)(!0),I=(0,i.Z)(A,2),E=I[0],D=I[1],F=(0,o.useState)([!0]),T=(0,i.Z)(F,2),U=T[0],W=T[1];(0,o.useEffect)((function(){if(r){var e=r.console||"";if(k(e),""!==e){var n=new RegExp(/((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\/[a-zA-Z0-9]{1,})*?$/);D(n.test(e))}else D(!0);if(r.minio&&r.minio.length>0){N(r.minio);var t=new RegExp(/((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?$/),i=r.minio.map((function(e){return""===e.trim()||t.test(e)}));W(i)}}}),[r]);var L=function(){var e=(0,_.Z)(R),n=(0,_.Z)(U);e.push(""),n.push(!0),N(e),W(n)};return(0,b.jsx)(h.Z,{title:"Edit Tenant Domains - ".concat(l),modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsx)(m.ZP,{container:!0,children:(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalFormScrollable,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(s.configSectionItem),children:[(0,b.jsx)("div",{className:s.containerItem,children:(0,b.jsx)(f.Z,{id:"console_domain",name:"console_domain",onChange:function(e){k(e.target.value),D(e.target.validity.valid)},label:"Console Domain",value:w,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",pattern:"((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\/[a-zA-Z0-9]{1,})*?$",error:E?"":"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{children:"MinIO Domains"}),(0,b.jsx)("div",{children:R.map((function(e,n){return(0,b.jsxs)("div",{className:"".concat(s.domainInline),children:[(0,b.jsx)(f.Z,{id:"minio-domain-".concat(n.toString()),name:"minio-domain-".concat(n.toString()),onChange:function(e){!function(e,n){var t=(0,_.Z)(R);t[n]=e,N(t)}(e.target.value,n),function(e,n){var t=(0,_.Z)(U);t[n]=e,W(t)}(e.target.validity.valid,n)},label:"MinIO Domain ".concat(n+1),value:e,placeholder:"Eg. http://subdomain.domain",pattern:"((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?$",error:U[n]?"":"MinIO domain format is incorrect (http|https://subdomain.domain)"}),(0,b.jsx)("div",{className:s.overlayAction,children:(0,b.jsx)(z.Z,{size:"small",onClick:L,disabled:n!==R.length-1,children:(0,b.jsx)(B.Z,{})})}),(0,b.jsx)("div",{className:s.overlayAction,children:(0,b.jsx)(z.Z,{size:"small",onClick:function(){return function(e){var n=R.filter((function(n,t){return t!==e})),t=U.filter((function(n,t){return t!==e}));N(n),W(t)}(n)},disabled:R.length<=1,children:(0,b.jsx)(M.Z,{})})})]},"minio-domain-key-".concat(n.toString()))}))})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:s.modalButtonBar,children:[(0,b.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){k(""),D(!0),N([""]),W([!0])},children:"Clear"}),(0,b.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:v||!E||U.filter((function(e){return!e})).length>0,onClick:function(){g(!0);var e={domains:{console:w,minio:R.filter((function(e){return""!==e.trim()}))}};x.Z.invoke("PUT","/api/v1/namespaces/".concat(a,"/tenants/").concat(l,"/domains"),e).then((function(){g(!1),t(!0)})).catch((function(e){c((0,Z.zb)(e)),g(!1)}))},children:"Save"})]})]})})})})),U=t(17238),W=t(16871),L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"red",n=arguments.length>1?arguments[1]:void 0;return"red"===e?n.redState:"yellow"===e?n.yellowState:"green"===e?n.greenState:n.greyState},O=function(e){var n,t=e.tenant,i=e.classes;return t?(0,b.jsx)(E,{tenant:t,label:"Storage",error:"",loading:!1,healthStatus:L(null===t||void 0===t||null===(n=t.status)||void 0===n?void 0:n.health_status,i)}):null},$=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,b.jsx)(g.Z,{indicatorLabels:["Enabled","Disabled"],checked:e,value:e,id:"".concat(n,"-status"),name:"".concat(n,"-status"),onChange:function(){},switchOnly:!0})},V={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},K={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},G=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},u.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},detailSection:{"& div":{"& b,i":{minWidth:80,display:"block",float:"left"},"& i":{fontStyle:"normal",wordWrap:"break-word",overflowWrap:"break-word"},"& div":{clear:"both"},clear:"both",marginBottom:2}},linkedSection:{color:e.palette.info.main,fontFamily:"'Lato', sans-serif"},autoGeneratedLink:{fontStyle:"italic"}},(0,u.Bz)(e.spacing(4))))}))((function(e){var n,t,r,c,d,u,p,h,f,g,x,Z,w,k,C,R,N,A,E,_,z,B,M,L,G=e.classes,H=(0,j.TL)(),q=(0,W.UO)(),J=q.tenantName,Q=q.tenantNamespace,Y=(0,l.v9)((function(e){return e.tenants.tenantInfo})),X=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"logEnabled",!1)})),ee=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"monitoringEnabled",!1)})),ne=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"encryptionEnabled",!1)})),te=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"minioTLS",!1)})),ie=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpAdEnabled",!1)})),ae=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpOidcEnabled",!1)})),oe=(0,o.useState)(0),le=(0,i.Z)(oe,2),re=le[0],se=le[1],ce=(0,o.useState)(0),de=(0,i.Z)(ce,2),ue=de[0],me=de[1],ve=(0,o.useState)(0),pe=(0,i.Z)(ve,2),he=pe[0],fe=pe[1],ge=(0,o.useState)(!1),xe=(0,i.Z)(ge,2),Ze=xe[0],je=xe[1],be=(0,o.useState)(!1),ye=(0,i.Z)(be,2),Se=ye[0],we=ye[1];(0,o.useEffect)((function(){Y&&(se(Y.pools.length),fe(Y.total_volumes||0),me(Y.total_instances||0))}),[Y]);return(0,b.jsxs)(o.Fragment,{children:[Ze&&(0,b.jsx)(y,{open:Ze,closeModalAndRefresh:function(){je(!1)},idTenant:J||"",namespace:Q||""}),Se&&(0,b.jsx)(T,{open:Se,idTenant:J||"",namespace:Q||"",domains:(null===Y||void 0===Y?void 0:Y.domains)||null,closeModalAndRefresh:function(e){we(!1),e&&H((0,U.V2)(!0))}}),(0,b.jsx)(D.Z,{separator:!1,children:"Details"}),(0,b.jsx)(O,{tenant:Y,classes:G}),(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"State:",value:null===Y||void 0===Y?void 0:Y.currentState})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"MinIO:",value:(0,b.jsx)(S.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){je(!0)},children:Y?Y.image:""})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsxs)("h3",{children:["Domains",(0,b.jsx)(F.Z,{icon:(0,b.jsx)(P.dY8,{}),title:"",onClick:function(){we(!0)}})]})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Console:",value:(0,b.jsxs)(o.Fragment,{children:[null!==Y&&void 0!==Y&&null!==(n=Y.domains)&&void 0!==n&&n.console&&""!==(null===Y||void 0===Y||null===(t=Y.domains)||void 0===t?void 0:t.console)||null!==Y&&void 0!==Y&&null!==(r=Y.endpoints)&&void 0!==r&&r.console?"":"-",(null===Y||void 0===Y||null===(c=Y.endpoints)||void 0===c?void 0:c.console)&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)("a",{href:null===Y||void 0===Y||null===(d=Y.endpoints)||void 0===d?void 0:d.console,target:"_blank",rel:"noopener noreferrer",className:"".concat(G.linkedSection," ").concat(G.autoGeneratedLink),children:(null===Y||void 0===Y||null===(u=Y.endpoints)||void 0===u?void 0:u.console)||"-"}),(0,b.jsx)("br",{})]}),(null===Y||void 0===Y||null===(p=Y.domains)||void 0===p?void 0:p.console)&&""!==(null===Y||void 0===Y||null===(h=Y.domains)||void 0===h?void 0:h.console)&&(0,b.jsx)("a",{href:(null===Y||void 0===Y||null===(f=Y.domains)||void 0===f?void 0:f.console)||"",target:"_blank",rel:"noopener noreferrer",className:G.linkedSection,children:(null===Y||void 0===Y||null===(g=Y.domains)||void 0===g?void 0:g.console)||""})]})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"MinIO Endpoint".concat(null!==Y&&void 0!==Y&&null!==(x=Y.endpoints)&&void 0!==x&&x.minio&&1===(null===Y||void 0===Y||null===(Z=Y.endpoints)||void 0===Z?void 0:Z.minio.length)?"":"s",":"),value:(0,b.jsxs)(o.Fragment,{children:[null!==Y&&void 0!==Y&&null!==(w=Y.domains)&&void 0!==w&&w.minio||null!==Y&&void 0!==Y&&null!==(k=Y.endpoints)&&void 0!==k&&k.minio?"":"-",(null===Y||void 0===Y||null===(C=Y.endpoints)||void 0===C?void 0:C.minio)&&(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)("a",{href:null===Y||void 0===Y||null===(R=Y.endpoints)||void 0===R?void 0:R.minio,target:"_blank",rel:"noopener noreferrer",className:"".concat(G.linkedSection," ").concat(G.autoGeneratedLink),children:(null===Y||void 0===Y||null===(N=Y.endpoints)||void 0===N?void 0:N.minio)||"-"}),(0,b.jsx)("br",{})]}),(null===Y||void 0===Y||null===(A=Y.domains)||void 0===A?void 0:A.minio)&&Y.domains.minio.map((function(e){return(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:G.linkedSection,children:e}),(0,b.jsx)("br",{})]},e)}))]})})})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Instances:",value:ue})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Clusters:",value:re,stkProps:{style:{marginRight:47}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Total Drives:",value:he,stkProps:{style:{marginRight:43}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Write Quorum:",value:null!==Y&&void 0!==Y&&null!==(E=Y.status)&&void 0!==E&&E.write_quorum?null===Y||void 0===Y||null===(_=Y.status)||void 0===_?void 0:_.write_quorum:0})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Drives Online:",value:null!==Y&&void 0!==Y&&null!==(z=Y.status)&&void 0!==z&&z.drives_online?null===Y||void 0===Y||null===(B=Y.status)||void 0===B?void 0:B.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(I.Z,{label:"Drives Offline:",value:null!==Y&&void 0!==Y&&null!==(M=Y.status)&&void 0!==M&&M.drives_offline?null===Y||void 0===Y||null===(L=Y.status)||void 0===L?void 0:L.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,b.jsx)(D.Z,{children:"Features"}),(0,b.jsxs)(v.Z,{sx:(0,a.Z)({},V),children:[(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"Logs:",value:$(X,"tenant-log")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"AD/LDAP:",value:$(ie,"tenant-sts")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"Encryption:",value:$(ne,"tenant-enc")},K))]}),(0,b.jsxs)(v.Z,{sx:(0,a.Z)({},V),children:[(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"MinIO TLS:",value:$(te,"tenant-tls")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"Monitoring:",value:$(ee,"tenant-monitor")},K)),(0,b.jsx)(I.Z,(0,a.Z)({orientation:"row",label:"OpenID:",value:$(ae,"tenant-oidc")},K))]})]})}))},22512:function(e,n,t){var i=t(72791),a=t(20890),o=t(11135),l=t(25787),r=t(80184);n.Z=(0,l.Z)((function(e){var n;return(0,o.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,o=e.withBreak,l=void 0===o||o;return(0,r.jsxs)(i.Fragment,{children:[l&&(0,r.jsx)("br",{}),(0,r.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(95318);n.Z=void 0;var a=i(t(45649)),o=t(80184),l=(0,a.default)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=l},53767:function(e,n,t){var i=t(4942),a=t(63366),o=t(87462),l=t(72791),r=t(51184),s=t(45682),c=t(78519),d=t(82466),u=t(66934),m=t(31402),v=t(80184),p=["component","direction","spacing","divider","children"];function h(e,n){var t=l.Children.toArray(e).filter(Boolean);return t.reduce((function(e,i,a){return e.push(i),a :not(style) + :not(style)":(0,i.Z)({margin:0},"margin".concat((a=t?u[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[a])),(0,s.NA)(l,e))};var a})))}return a})),g=l.forwardRef((function(e,n){var t=(0,m.Z)({props:e,name:"MuiStack"}),i=(0,c.Z)(t),l=i.component,r=void 0===l?"div":l,s=i.direction,d=void 0===s?"column":s,u=i.spacing,g=void 0===u?0:u,x=i.divider,Z=i.children,j=(0,a.Z)(i,p),b={direction:d,spacing:g};return(0,v.jsx)(f,(0,o.Z)({as:r,ownerState:b,ref:n},j,{children:x?h(Z,x):Z}))}));n.Z=g},23688:function(e,n,t){function i(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function a(e){this.setState(function(n){var t=this.constructor.getDerivedStateFromProps(e,n);return null!==t&&void 0!==t?t:null}.bind(this))}function o(e,n){try{var t=this.props,i=this.state;this.props=e,this.state=n,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(t,i)}finally{this.props=t,this.state=i}}function l(e){var n=e.prototype;if(!n||!n.isReactComponent)throw new Error("Can only polyfill class components");if("function"!==typeof e.getDerivedStateFromProps&&"function"!==typeof n.getSnapshotBeforeUpdate)return e;var t=null,l=null,r=null;if("function"===typeof n.componentWillMount?t="componentWillMount":"function"===typeof n.UNSAFE_componentWillMount&&(t="UNSAFE_componentWillMount"),"function"===typeof n.componentWillReceiveProps?l="componentWillReceiveProps":"function"===typeof n.UNSAFE_componentWillReceiveProps&&(l="UNSAFE_componentWillReceiveProps"),"function"===typeof n.componentWillUpdate?r="componentWillUpdate":"function"===typeof n.UNSAFE_componentWillUpdate&&(r="UNSAFE_componentWillUpdate"),null!==t||null!==l||null!==r){var s=e.displayName||e.name,c="function"===typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+c+" but also contains the following legacy lifecycles:"+(null!==t?"\n "+t:"")+(null!==l?"\n "+l:"")+(null!==r?"\n "+r:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"===typeof e.getDerivedStateFromProps&&(n.componentWillMount=i,n.componentWillReceiveProps=a),"function"===typeof n.getSnapshotBeforeUpdate){if("function"!==typeof n.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");n.componentWillUpdate=o;var d=n.componentDidUpdate;n.componentDidUpdate=function(e,n,t){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:t;d.call(this,e,n,i)}}return e}t.r(n),t.d(n,{polyfill:function(){return l}}),i.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0}}]);
+//# sourceMappingURL=1030.38e91f62.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1030.38e91f62.chunk.js.map b/portal-ui/build/static/js/1030.38e91f62.chunk.js.map
new file mode 100644
index 000000000..19491b764
--- /dev/null
+++ b/portal-ui/build/static/js/1030.38e91f62.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1030.38e91f62.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Tenants/TenantDetails/EditDomains.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n {children}\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n \n {titleIcon} {title}\n
\n \n \n \n \n
\n \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n {label}\n \n \n {value}\n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n
\n );\n })}\n
\n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"../../../../icons\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\"\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n \n \n
\n );\n }\n\n return (\n \n
\n \n
\n
\n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n
\n \n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n
\n
\n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, Grid } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n classes,\n}: IUpdateTenantModal) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage]\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n enable_prometheus: true,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n \n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
\n \n \n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n \n \n \n Clear\n \n \n Save\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(UpdateTenantModal);\n","import React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { LinearProgress, Stack } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n CapacityValues,\n ITenant,\n ValueUnit,\n} from \"../../Tenants/ListTenants/types\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport Loader from \"../Loader/Loader\";\nimport TenantCapacity from \"../../Tenants/ListTenants/TenantCapacity\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport LabelValuePair from \"./LabelValuePair\";\n\ninterface ISummaryUsageBar {\n tenant: ITenant;\n label: string;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n centerItem: {\n textAlign: \"center\",\n },\n });\n\nexport const BorderLinearProgress = withStyles((theme) => ({\n root: {\n height: 10,\n borderRadius: 5,\n },\n colorPrimary: {\n backgroundColor: \"#F4F4F4\",\n },\n bar: {\n borderRadius: 5,\n backgroundColor: \"#081C42\",\n },\n padChart: {\n padding: \"5px\",\n },\n}))(LinearProgress);\n\nconst SummaryUsageBar = ({\n classes,\n tenant,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.status?.usage?.raw) {\n const b = niceBytes(`${tenant.status.usage.raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity) {\n const b = niceBytes(`${tenant.status.usage.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity_usage) {\n const b = niceBytesInt(tenant.status.usage.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.status?.usage?.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size, variant: itemTenant.name };\n });\n let internalUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n \n )}\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n \n )}\n {healthStatus && (\n \n \n \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n \n \n \n \n
\n )}\n {renderComponent()}\n \n );\n};\n\nexport default withStyles(styles)(SummaryUsageBar);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, Grid, IconButton } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IDomainsRequest,\n} from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport api from \"../../../../common/api\";\nimport RemoveIcon from \"../../../../icons/RemoveIcon\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IEditDomains {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n domains: IDomainsRequest | null;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n domainInline: {\n display: \"flex\",\n marginBottom: 15,\n },\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n width: 15,\n height: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst EditDomains = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n domains,\n classes,\n}: IEditDomains) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [consoleDomain, setConsoleDomain] = useState(\"\");\n const [minioDomains, setMinioDomains] = useState([\"\"]);\n const [consoleDomainValid, setConsoleDomainValid] = useState(true);\n const [minioDomainValid, setMinioDomainValid] = useState([true]);\n\n useEffect(() => {\n if (domains) {\n const consoleDomainSet = domains.console || \"\";\n setConsoleDomain(consoleDomainSet);\n\n if (consoleDomainSet !== \"\") {\n // We Validate console domain\n const consoleRegExp = new RegExp(\n /((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\/[a-zA-Z0-9]{1,})*?$/\n );\n\n setConsoleDomainValid(consoleRegExp.test(consoleDomainSet));\n } else {\n setConsoleDomainValid(true);\n }\n\n if (domains.minio && domains.minio.length > 0) {\n setMinioDomains(domains.minio);\n\n const minioRegExp = new RegExp(\n /((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?$/\n );\n\n const initialValidations = domains.minio.map((domain) => {\n if (domain.trim() !== \"\") {\n return minioRegExp.test(domain);\n } else {\n return true;\n }\n });\n\n setMinioDomainValid(initialValidations);\n }\n }\n }, [domains]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setConsoleDomain(\"\");\n setConsoleDomainValid(true);\n setMinioDomains([\"\"]);\n setMinioDomainValid([true]);\n };\n\n const updateDomainsList = () => {\n setIsSending(true);\n\n let payload = {\n domains: {\n console: consoleDomain,\n minio: minioDomains.filter((minioDomain) => minioDomain.trim() !== \"\"),\n },\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}/domains`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const cloneDomains = [...minioDomains];\n cloneDomains[index] = value;\n\n setMinioDomains(cloneDomains);\n };\n\n const addNewMinIODomain = () => {\n const cloneDomains = [...minioDomains];\n const cloneValidations = [...minioDomainValid];\n\n cloneDomains.push(\"\");\n cloneValidations.push(true);\n\n setMinioDomains(cloneDomains);\n setMinioDomainValid(cloneValidations);\n };\n\n const removeMinIODomain = (removeIndex: number) => {\n const filteredDomains = minioDomains.filter(\n (_, index) => index !== removeIndex\n );\n\n const filterValidations = minioDomainValid.filter(\n (_, index) => index !== removeIndex\n );\n\n setMinioDomains(filteredDomains);\n setMinioDomainValid(filterValidations);\n };\n\n const setMinioDomainValidation = (domainValid: boolean, index: number) => {\n const cloneValidation = [...minioDomainValid];\n cloneValidation[index] = domainValid;\n\n setMinioDomainValid(cloneValidation);\n };\n\n return (\n \n \n \n \n \n ) => {\n setConsoleDomain(e.target.value);\n\n setConsoleDomainValid(e.target.validity.valid);\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n pattern={\n \"((http|https):\\\\/\\\\/)+[a-zA-Z0-9\\\\-.]{3,}\\\\.[a-zA-Z]{2,}(\\\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\\\/[a-zA-Z0-9]{1,})*?$\"\n }\n error={\n !consoleDomainValid\n ? \"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)\"\n : \"\"\n }\n />\n
\n \n
MinIO Domains \n
\n {minioDomains.map((domain, index) => {\n return (\n
\n
) => {\n updateMinIODomain(e.target.value, index);\n setMinioDomainValidation(\n e.target.validity.valid,\n index\n );\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n pattern={\n \"((http|https):\\\\/\\\\/)+[a-zA-Z0-9\\\\-.]{3,}\\\\.[a-zA-Z]{2,}(\\\\.[a-zA-Z]{2,})?$\"\n }\n error={\n !minioDomainValid[index]\n ? \"MinIO domain format is incorrect (http|https://subdomain.domain)\"\n : \"\"\n }\n />\n \n\n \n removeMinIODomain(index)}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n \n );\n })}\n
\n
\n \n \n \n Clear\n \n !domain).length > 0\n }\n onClick={updateDomainsList}\n >\n Save\n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(EditDomains);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid } from \"@mui/material\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SectionTitle from \"../../Common/SectionTitle\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { EditIcon } from \"../../../../icons\";\nimport EditDomains from \"./EditDomains\";\nimport { setTenantDetailsLoad } from \"../tenantsSlice\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { useParams } from \"react-router-dom\";\n\ninterface ITenantsSummary {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n detailSection: {\n \"& div\": {\n \"& b,i\": {\n minWidth: 80,\n display: \"block\",\n float: \"left\",\n },\n \"& i\": {\n fontStyle: \"normal\",\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n },\n \"& div\": {\n clear: \"both\",\n },\n clear: \"both\",\n marginBottom: 2,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n fontFamily: \"'Lato', sans-serif\",\n },\n autoGeneratedLink: {\n fontStyle: \"italic\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({\n tenant,\n classes,\n}: {\n tenant: ITenant | null;\n classes: any;\n}) => {\n if (!tenant) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n return (\n {}}\n switchOnly\n />\n );\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({ classes }: ITenantsSummary) => {\n const dispatch = useAppDispatch();\n const { tenantName, tenantNamespace } = useParams();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const logEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"logEnabled\", false)\n );\n const monitoringEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"monitoringEnabled\", false)\n );\n const encryptionEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"encryptionEnabled\", false)\n );\n const minioTLS = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"minioTLS\", false)\n );\n const adEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpAdEnabled\", false)\n );\n const oidcEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpOidcEnabled\", false)\n );\n\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n const [editDomainsOpen, setEditDomainsOpen] = useState(false);\n\n useEffect(() => {\n if (tenant) {\n setPoolCount(tenant.pools.length);\n setVolumes(tenant.total_volumes || 0);\n setInstances(tenant.total_instances || 0);\n }\n }, [tenant]);\n\n const closeEditDomainsModal = (refresh: boolean) => {\n setEditDomainsOpen(false);\n\n if (refresh) {\n dispatch(setTenantDetailsLoad(true));\n }\n };\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n }}\n idTenant={tenantName || \"\"}\n namespace={tenantNamespace || \"\"}\n />\n )}\n\n {editDomainsOpen && (\n \n )}\n\n Details \n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n \n Domains\n }\n title={\"\"}\n onClick={() => {\n setEditDomainsOpen(true);\n }}\n />\n \n \n \n \n {(!tenant?.domains?.console ||\n tenant?.domains?.console === \"\") &&\n !tenant?.endpoints?.console\n ? \"-\"\n : \"\"}\n\n {tenant?.endpoints?.console && (\n \n \n {tenant?.endpoints?.console || \"-\"}\n \n \n \n )}\n\n {tenant?.domains?.console && tenant?.domains?.console !== \"\" && (\n \n {tenant?.domains?.console || \"\"}\n \n )}\n \n }\n />\n \n \n \n {!tenant?.domains?.minio && !tenant?.endpoints?.minio\n ? \"-\"\n : \"\"}\n {tenant?.endpoints?.minio && (\n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n \n \n )}\n\n {tenant?.domains?.minio &&\n tenant.domains.minio.map((domain) => {\n return (\n \n \n {domain}\n \n \n \n );\n })}\n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n Features \n \n \n\n \n \n \n \n \n\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(TenantSummary);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak && }\n \n {errorMessage}\n \n \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","classes","children","rest","className","deleteDialogStyles","content","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","wideLimit","noContentPadding","titleIcon","dispatch","useAppDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","totalValue","sizeItems","bgColor","height","borderRadius","display","transitionDuration","overflow","map","sizeElement","index","itemPercentage","toString","totalCapacity","usedSpaceVariants","statusClass","render","colors","BGColor","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","variant","filter","standardTierColor","usedPercentage","plotValues","plotValuesForUsageBar","plotVal","itemName","marginBottom","position","right","top","zIndex","left","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","minioImage","setMinioImage","imageRegistry","setImageRegistry","imageRegistryEndpoint","setImageRegistryEndpoint","imageRegistryUsername","setImageRegistryUsername","imageRegistryPassword","setImageRegistryPassword","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","disabled","trim","payload","image","enable_prometheus","registry","image_registry","username","password","api","then","catch","error","setModalErrorSnackMessage","colorPrimary","bar","padChart","LinearProgress","centerItem","textAlign","tenant","healthStatus","loading","raw","unit","capacity","used","localUse","tieredUse","status","usage","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","internalUsage","sum","tieredUsage","partsInternal","Loader","ErrorBlock","errorMessage","withBreak","TenantCapacity","Stack","spacing","md","alignItems","LabelValuePair","renderComponent","domainInline","overlayAction","marginLeft","background","domains","consoleDomain","setConsoleDomain","minioDomains","setMinioDomains","consoleDomainValid","setConsoleDomainValid","minioDomainValid","setMinioDomainValid","consoleDomainSet","console","consoleRegExp","minio","minioRegExp","initialValidations","domain","addNewMinIODomain","cloneDomains","cloneValidations","push","configSectionItem","containerItem","validity","valid","updateMinIODomain","domainValid","cloneValidation","setMinioDomainValidation","IconButton","Add","removeIndex","filteredDomains","_","filterValidations","removeMinIODomain","RemoveIcon","minioDomain","healthStatusToClass","health_status","redState","yellowState","greenState","greyState","StorageSummary","getToggle","toggleValue","idPrefix","switchOnly","featureRowStyle","justifyContent","marginTop","flexFlow","featureItemStyleProps","sx","flex","minWidth","tenantDetailsStyles","warning","success","detailSection","float","fontStyle","wordWrap","overflowWrap","clear","linkedSection","autoGeneratedLink","containerForHeader","useParams","tenantName","tenantNamespace","tenants","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","adEnabled","oidcEnabled","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","editDomainsOpen","setEditDomainsOpen","pools","total_volumes","total_instances","refresh","setTenantDetailsLoad","SectionTitle","separator","currentState","AButton","textOverflow","whiteSpace","wordBreak","RBIconButton","icon","endpoints","href","rel","write_quorum","drives_online","drives_offline","Box","errorBlock","component","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_excluded","joinChildren","childrenArray","React","Boolean","output","child","key","StackRoot","styled","slot","overridesResolver","props","styles","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","transformer","createUnarySpacing","base","Object","keys","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","inProps","ref","themeProps","useThemeProps","extendSxProp","divider","other","_objectWithoutPropertiesLoose","_jsx","as","componentWillMount","this","constructor","getDerivedStateFromProps","undefined","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1030.d7679dcf.chunk.js b/portal-ui/build/static/js/1030.d7679dcf.chunk.js
deleted file mode 100644
index 808845ac4..000000000
--- a/portal-ui/build/static/js/1030.d7679dcf.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1030],{81806:function(e,n,t){var i=t(1413),a=t(45987),o=(t(72791),t(11135)),l=t(25787),r=t(80184),s=["classes","children"];n.Z=(0,l.Z)((function(e){return(0,o.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,o=(0,a.Z)(e,s);return(0,r.jsx)("button",(0,i.Z)((0,i.Z)({},o),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var i=t(29439),a=t(1413),o=t(72791),l=t(60364),r=t(13400),s=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),v=t(25787),p=t(23814),h=t(29823),f=t(28057),g=t(87995),x=t(80184);n.Z=(0,v.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,v=e.children,p=e.classes,Z=e.wideLimit,j=void 0===Z||Z,b=e.noContentPadding,y=e.titleIcon,S=void 0===y?null:y,w=(0,l.I0)(),k=(0,o.useState)(!1),P=(0,i.Z)(k,2),C=P[0],R=P[1],I=(0,l.v9)((function(e){return e.system.modalSnackBar}));(0,o.useEffect)((function(){w((0,g.MK)(""))}),[w]),(0,o.useEffect)((function(){if(I){if(""===I.message)return void R(!1);"error"!==I.type&&R(!0)}}),[I]);var N=j?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},A="";return I&&(A=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(A=I.message)),(0,x.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:p},N),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,x.jsxs)(d.Z,{className:p.title,children:[(0,x.jsxs)("div",{className:p.titleText,children:[S," ",m]}),(0,x.jsx)("div",{className:p.closeContainer,children:(0,x.jsx)(r.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,x.jsx)(h.Z,{})})})]}),(0,x.jsx)(f.Z,{isModal:!0}),(0,x.jsx)(s.Z,{open:C,className:p.snackBarModal,onClose:function(){R(!1),w((0,g.MK)(""))},message:A,ContentProps:{className:"".concat(p.snackBar," ").concat(I&&"error"===I.type?p.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,x.jsx)(u.Z,{className:b?"":p.content,children:v})]}))}))},45902:function(e,n,t){var i=t(1413),a=(t(72791),t(53767)),o=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,l=e.value,r=void 0===l?"-":l,s=e.orientation,c=void 0===s?"column":s,d=e.stkProps,u=void 0===d?{}:d,m=e.lblProps,v=void 0===m?{}:m,p=e.valProps,h=void 0===p?{}:p;return(0,o.jsxs)(a.Z,(0,i.Z)((0,i.Z)({direction:{xs:"column",sm:c}},u),{},{children:[(0,o.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:600}},v),{},{children:t})),(0,o.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:r}))]}))}},74815:function(e,n,t){t.d(n,{Z:function(){return u}});var i=t(93433),a=(t(72791),t(73909)),o=t(21041),l=t(41048),r=t(45248),s=t(51047),c=t(80184),d=function(e){var n=e.totalValue,t=e.sizeItems,i=e.bgColor,a=void 0===i?"#ededed":i;return(0,c.jsx)("div",{style:{width:"100%",height:12,backgroundColor:a,borderRadius:30,display:"flex",transitionDuration:"0.3s",overflow:"hidden"},children:t.map((function(e,t){var i=100*e.value/n;return(0,c.jsx)("div",{style:{width:"".concat(i,"%"),height:"100%",backgroundColor:e.color,transitionDuration:"0.3s"}},"itemSize-".concat(t.toString()))}))})},u=function(e){var n=e.totalCapacity,t=e.usedSpaceVariants,u=e.statusClass,m=e.render,v=void 0===m?"pie":m,p=["#8dacd3","#bca1ea","#92e8d2","#efc9ac","#97f274","#f7d291","#71ACCB","#f28282","#e28cc1","#2781B0"],h="#ededed",f=t.reduce((function(e,n){return e+n.value}),0),g=n-f,x=[],Z=t.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};t.length>10?x=[{value:f-Z.value,color:"#2781B0",label:"Total Tiers Space"}]:x=t.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,n){return{value:e.value,color:p[n],label:"Tier - ".concat(e.variant)}}));var j="#07193E",b=100*Z.value/n;b>=90?j="#C83B51":b>=75&&(j="#FFAB0F");var y=[{value:Z.value,color:j,label:"Used Space by Tenant"}].concat((0,i.Z)(x),[{value:g,color:"bar"===v?h:"transparent",label:"Empty Space"}]);if("bar"===v){var S=y.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,c.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,c.jsx)(d,{totalValue:n,sizeItems:S,bgColor:h})})}return(0,c.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,c.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:u,children:(0,c.jsx)(s.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,c.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(f)?"N/A":(0,r.l5)(f)}),(0,c.jsx)("div",{children:(0,c.jsxs)(a.u,{width:110,height:110,children:[(0,c.jsx)(o.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:h,isAnimationActive:!1,stroke:"none"}),(0,c.jsx)(o.b,{data:y,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:y.map((function(e,n){return(0,c.jsx)(l.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(n))}))})]})})]})}},21353:function(e,n,t){t.r(n),t.d(n,{default:function(){return V}});var i=t(29439),a=t(1413),o=t(72791),l=t(60364),r=t(26181),s=t.n(r),c=t(11135),d=t(25787),u=t(23814),m=t(61889),v=t(64554),p=t(36151),h=t(56028),f=t(21435),g=t(37516),x=t(81207),Z=t(87995),j=t(80184),b=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({infoText:{fontSize:14}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,r=e.namespace,s=e.idTenant,c=e.classes,d=(0,l.I0)(),u=(0,o.useState)(!1),v=(0,i.Z)(u,2),b=v[0],y=v[1],S=(0,o.useState)(""),w=(0,i.Z)(S,2),k=w[0],P=w[1],C=(0,o.useState)(!1),R=(0,i.Z)(C,2),I=R[0],N=R[1],A=(0,o.useState)(""),E=(0,i.Z)(A,2),D=E[0],F=E[1],_=(0,o.useState)(""),z=(0,i.Z)(_,2),B=z[0],M=z[1],W=(0,o.useState)(""),U=(0,i.Z)(W,2),T=U[0],O=U[1],L=(0,o.useState)(!0),$=(0,i.Z)(L,2),V=$[0],K=$[1],G=(0,o.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)K(n.test(k))}),[k]);(0,o.useEffect)((function(){G("minioImage")}),[k,G]);return(0,j.jsx)(h.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,j.jsxs)(m.ZP,{container:!0,children:[(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:c.modalFormScrollable,children:[(0,j.jsx)("div",{className:c.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,j.jsx)("br",{}),(0,j.jsx)("br",{}),(0,j.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,j.jsx)(f.Z,{value:k,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){P(e.target.value)}})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,j.jsx)(g.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:I,onChange:function(e){N(!I)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),I&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,j.jsx)(f.Z,{value:D,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){F(e.target.value)}})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,j.jsx)(f.Z,{value:B,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){M(e.target.value)}})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,j.jsx)(f.Z,{value:T,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){O(e.target.value)}})})]})]}),(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,j.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){P(""),N(!1),F(""),M(""),O("")},children:"Clear"}),(0,j.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:!V||I&&(""===D.trim()||""===B.trim()||""===T.trim())||b,onClick:function(){y(!0);var e={image:k,enable_prometheus:!0};if(I){var n={image_registry:{registry:D,username:B,password:T}};e=(0,a.Z)((0,a.Z)({},e),n)}x.Z.invoke("PUT","/api/v1/namespaces/".concat(r,"/tenants/").concat(s),e).then((function(){y(!1),t(!0)})).catch((function(e){d((0,Z.zb)(e)),y(!1)}))},children:"Save"})]})]})})})),y=t(81806),S=t(40986),w=t(53767),k=t(51047),P=t(45248),C=t(72401),R=t(74815),I=t(22512),N=t(45902),A=((0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(S.Z),(0,d.Z)((function(e){return(0,c.Z)({centerItem:{textAlign:"center"}})}))((function(e){var n,t,i,a,l,r,s=e.classes,c=e.tenant,d=e.healthStatus,u=e.loading,v=e.error,p={value:"n/a",unit:""},h={value:"n/a",unit:""},f={value:"n/a",unit:""},g={value:"n/a",unit:""},x={value:"n/a",unit:""};if(null!==(n=c.status)&&void 0!==n&&null!==(t=n.usage)&&void 0!==t&&t.raw){var Z=(0,P.ae)("".concat(c.status.usage.raw),!0).split(" ");p.value=Z[0],p.unit=Z[1]}if(null!==(i=c.status)&&void 0!==i&&null!==(a=i.usage)&&void 0!==a&&a.capacity){var b=(0,P.ae)("".concat(c.status.usage.capacity),!0).split(" ");h.value=b[0],h.unit=b[1]}if(null!==(l=c.status)&&void 0!==l&&null!==(r=l.usage)&&void 0!==r&&r.capacity_usage){var y=(0,P.l5)(c.status.usage.capacity_usage,!0).split(" ");f.value=y[0],f.unit=y[1]}var S=[];if(c.tiers&&0!==c.tiers.length){S=c.tiers.map((function(e){return{value:e.size,variant:e.name}}));var A=c.tiers.filter((function(e){return"internal"===e.type})).reduce((function(e,n){return e+n.size}),0),E=c.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,n){return e+n.size}),0),D=(0,P.l5)(E,!0).split(" ");x.value=D[0],x.unit=D[1];var F=(0,P.l5)(A,!0).split(" ");g.value=F[0],g.unit=F[1]}else{var _,z;S=[{value:(null===(_=c.status)||void 0===_||null===(z=_.usage)||void 0===z?void 0:z.capacity_usage)||0,variant:"STANDARD"}]}return(0,j.jsxs)(o.Fragment,{children:[u&&(0,j.jsx)("div",{className:s.padChart,children:(0,j.jsx)(m.ZP,{item:!0,xs:12,className:s.centerItem,children:(0,j.jsx)(C.Z,{style:{width:40,height:40}})})}),function(){var e,n;return u?null:""!==v?(0,j.jsx)(I.Z,{errorMessage:v,withBreak:!1}):(0,j.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,j.jsx)(R.Z,{totalCapacity:(null===(e=c.status)||void 0===e||null===(n=e.usage)||void 0===n?void 0:n.raw)||0,usedSpaceVariants:S,statusClass:"",render:"bar"}),(0,j.jsxs)(w.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"0 0 15px 0",children:[(!c.tiers||0===c.tiers.length)&&(0,j.jsx)(o.Fragment,{children:(0,j.jsx)(N.Z,{label:"Internal:",orientation:"row",value:"".concat(f.value," ").concat(f.unit)})}),c.tiers&&c.tiers.length>0&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)(N.Z,{label:"Internal:",orientation:"row",value:"".concat(g.value," ").concat(g.unit)}),(0,j.jsx)(N.Z,{label:"Tiered:",orientation:"row",value:"".concat(x.value," ").concat(x.unit)})]}),d&&(0,j.jsx)(N.Z,{orientation:"row",label:"Health:",value:(0,j.jsx)("span",{className:d,children:(0,j.jsx)(k.J$M,{})})})]})]})}()]})}))),E=t(50896),D=t(40603),F=t(93433),_=t(13400),z=t(42419),B=t(51979),M=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({domainInline:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},u.DF),u.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,a=e.namespace,r=e.idTenant,s=e.domains,c=e.classes,d=(0,l.I0)(),u=(0,o.useState)(!1),v=(0,i.Z)(u,2),g=v[0],b=v[1],y=(0,o.useState)(""),S=(0,i.Z)(y,2),w=S[0],k=S[1],P=(0,o.useState)([""]),C=(0,i.Z)(P,2),R=C[0],I=C[1],N=(0,o.useState)(!0),A=(0,i.Z)(N,2),E=A[0],D=A[1],M=(0,o.useState)([!0]),W=(0,i.Z)(M,2),U=W[0],T=W[1];(0,o.useEffect)((function(){if(s){var e=s.console||"";if(k(e),""!==e){var n=new RegExp(/((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\/[a-zA-Z0-9]{1,})*?$/);D(n.test(e))}else D(!0);if(s.minio&&s.minio.length>0){I(s.minio);var t=new RegExp(/((http|https):\/\/)+[a-zA-Z0-9\-.]{3,}\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?$/),i=s.minio.map((function(e){return""===e.trim()||t.test(e)}));T(i)}}}),[s]);var O=function(){var e=(0,F.Z)(R),n=(0,F.Z)(U);e.push(""),n.push(!0),I(e),T(n)};return(0,j.jsx)(h.Z,{title:"Edit Tenant Domains - ".concat(r),modalOpen:n,onClose:function(){t(!1)},children:(0,j.jsx)(m.ZP,{container:!0,children:(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:c.modalFormScrollable,children:[(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(c.configSectionItem),children:[(0,j.jsx)("div",{className:c.containerItem,children:(0,j.jsx)(f.Z,{id:"console_domain",name:"console_domain",onChange:function(e){k(e.target.value),D(e.target.validity.valid)},label:"Console Domain",value:w,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",pattern:"((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\/[a-zA-Z0-9]{1,})*?$",error:E?"":"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)"})}),(0,j.jsxs)("div",{children:[(0,j.jsx)("h4",{children:"MinIO Domains"}),(0,j.jsx)("div",{children:R.map((function(e,n){return(0,j.jsxs)("div",{className:"".concat(c.domainInline),children:[(0,j.jsx)(f.Z,{id:"minio-domain-".concat(n.toString()),name:"minio-domain-".concat(n.toString()),onChange:function(e){!function(e,n){var t=(0,F.Z)(R);t[n]=e,I(t)}(e.target.value,n),function(e,n){var t=(0,F.Z)(U);t[n]=e,T(t)}(e.target.validity.valid,n)},label:"MinIO Domain ".concat(n+1),value:e,placeholder:"Eg. http://subdomain.domain",pattern:"((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?$",error:U[n]?"":"MinIO domain format is incorrect (http|https://subdomain.domain)"}),(0,j.jsx)("div",{className:c.overlayAction,children:(0,j.jsx)(_.Z,{size:"small",onClick:O,disabled:n!==R.length-1,children:(0,j.jsx)(z.Z,{})})}),(0,j.jsx)("div",{className:c.overlayAction,children:(0,j.jsx)(_.Z,{size:"small",onClick:function(){return function(e){var n=R.filter((function(n,t){return t!==e})),t=U.filter((function(n,t){return t!==e}));I(n),T(t)}(n)},disabled:R.length<=1,children:(0,j.jsx)(B.Z,{})})})]},"minio-domain-key-".concat(n.toString()))}))})]})]}),(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,j.jsx)(p.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){k(""),D(!0),I([""]),T([!0])},children:"Clear"}),(0,j.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:g||!E||U.filter((function(e){return!e})).length>0,onClick:function(){b(!0);var e={domains:{console:w,minio:R.filter((function(e){return""!==e.trim()}))}};x.Z.invoke("PUT","/api/v1/namespaces/".concat(a,"/tenants/").concat(r,"/domains"),e).then((function(){b(!1),t(!0)})).catch((function(e){d((0,Z.zb)(e)),b(!1)}))},children:"Save"})]})]})})})})),W=t(17238),U=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},T=function(e){var n,t=e.tenant,i=e.classes;return t?(0,j.jsx)(A,{tenant:t,label:"Storage",error:"",loading:!1,healthStatus:U(null===t||void 0===t||null===(n=t.status)||void 0===n?void 0:n.health_status,i)}):null},O=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,j.jsx)(g.Z,{indicatorLabels:["Enabled","Disabled"],checked:e,value:e,id:"".concat(n,"-status"),name:"".concat(n,"-status"),onChange:function(){},switchOnly:!0})},L={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},$={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},V=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},u.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},detailSection:{"& div":{"& b,i":{minWidth:80,display:"block",float:"left"},"& i":{fontStyle:"normal",wordWrap:"break-word",overflowWrap:"break-word"},"& div":{clear:"both"},clear:"both",marginBottom:2}},linkedSection:{color:e.palette.info.main,fontFamily:"'Lato', sans-serif"},autoGeneratedLink:{fontStyle:"italic"}},(0,u.Bz)(e.spacing(4))))}))((function(e){var n,t,r,c,d,u,p,h,f,g,x,Z,S,w,P,C,R,I,A,F,_,z,B,U,V=e.classes,K=e.match,G=(0,l.I0)(),H=(0,l.v9)((function(e){return e.tenants.tenantInfo})),q=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"logEnabled",!1)})),J=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"monitoringEnabled",!1)})),Q=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"encryptionEnabled",!1)})),Y=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"minioTLS",!1)})),X=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpAdEnabled",!1)})),ee=(0,l.v9)((function(e){return s()(e.tenants.tenantInfo,"idpOidcEnabled",!1)})),ne=(0,o.useState)(0),te=(0,i.Z)(ne,2),ie=te[0],ae=te[1],oe=(0,o.useState)(0),le=(0,i.Z)(oe,2),re=le[0],se=le[1],ce=(0,o.useState)(0),de=(0,i.Z)(ce,2),ue=de[0],me=de[1],ve=(0,o.useState)(!1),pe=(0,i.Z)(ve,2),he=pe[0],fe=pe[1],ge=(0,o.useState)(!1),xe=(0,i.Z)(ge,2),Ze=xe[0],je=xe[1],be=K.params.tenantName,ye=K.params.tenantNamespace;(0,o.useEffect)((function(){H&&(ae(H.pools.length),me(H.total_volumes||0),se(H.total_instances||0))}),[H]);return(0,j.jsxs)(o.Fragment,{children:[he&&(0,j.jsx)(b,{open:he,closeModalAndRefresh:function(){fe(!1)},idTenant:be,namespace:ye}),Ze&&(0,j.jsx)(M,{open:Ze,idTenant:be,namespace:ye,domains:(null===H||void 0===H?void 0:H.domains)||null,closeModalAndRefresh:function(e){je(!1),e&&G((0,W.V2)(!0))}}),(0,j.jsx)(E.Z,{separator:!1,children:"Details"}),(0,j.jsx)(T,{tenant:H,classes:V}),(0,j.jsxs)(m.ZP,{container:!0,children:[(0,j.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"State:",value:null===H||void 0===H?void 0:H.currentState})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"MinIO:",value:(0,j.jsx)(y.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){fe(!0)},children:H?H.image:""})})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsxs)("h3",{children:["Domains",(0,j.jsx)(D.Z,{icon:(0,j.jsx)(k.dY8,{}),title:"",onClick:function(){je(!0)}})]})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"Console:",value:(0,j.jsxs)(o.Fragment,{children:[null!==H&&void 0!==H&&null!==(n=H.domains)&&void 0!==n&&n.console&&""!==(null===H||void 0===H||null===(t=H.domains)||void 0===t?void 0:t.console)||null!==H&&void 0!==H&&null!==(r=H.endpoints)&&void 0!==r&&r.console?"":"-",(null===H||void 0===H||null===(c=H.endpoints)||void 0===c?void 0:c.console)&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)("a",{href:null===H||void 0===H||null===(d=H.endpoints)||void 0===d?void 0:d.console,target:"_blank",rel:"noopener noreferrer",className:"".concat(V.linkedSection," ").concat(V.autoGeneratedLink),children:(null===H||void 0===H||null===(u=H.endpoints)||void 0===u?void 0:u.console)||"-"}),(0,j.jsx)("br",{})]}),(null===H||void 0===H||null===(p=H.domains)||void 0===p?void 0:p.console)&&""!==(null===H||void 0===H||null===(h=H.domains)||void 0===h?void 0:h.console)&&(0,j.jsx)("a",{href:(null===H||void 0===H||null===(f=H.domains)||void 0===f?void 0:f.console)||"",target:"_blank",rel:"noopener noreferrer",className:V.linkedSection,children:(null===H||void 0===H||null===(g=H.domains)||void 0===g?void 0:g.console)||""})]})})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"MinIO Endpoint".concat(null!==H&&void 0!==H&&null!==(x=H.endpoints)&&void 0!==x&&x.minio&&1===(null===H||void 0===H||null===(Z=H.endpoints)||void 0===Z?void 0:Z.minio.length)?"":"s",":"),value:(0,j.jsxs)(o.Fragment,{children:[null!==H&&void 0!==H&&null!==(S=H.domains)&&void 0!==S&&S.minio||null!==H&&void 0!==H&&null!==(w=H.endpoints)&&void 0!==w&&w.minio?"":"-",(null===H||void 0===H||null===(P=H.endpoints)||void 0===P?void 0:P.minio)&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)("a",{href:null===H||void 0===H||null===(C=H.endpoints)||void 0===C?void 0:C.minio,target:"_blank",rel:"noopener noreferrer",className:"".concat(V.linkedSection," ").concat(V.autoGeneratedLink),children:(null===H||void 0===H||null===(R=H.endpoints)||void 0===R?void 0:R.minio)||"-"}),(0,j.jsx)("br",{})]}),(null===H||void 0===H||null===(I=H.domains)||void 0===I?void 0:I.minio)&&H.domains.minio.map((function(e){return(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:V.linkedSection,children:e}),(0,j.jsx)("br",{})]},e)}))]})})})]}),(0,j.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"Instances:",value:re})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"Clusters:",value:ie,stkProps:{style:{marginRight:47}}})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"Total Drives:",value:ue,stkProps:{style:{marginRight:43}}})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"Write Quorum:",value:null!==H&&void 0!==H&&null!==(A=H.status)&&void 0!==A&&A.write_quorum?null===H||void 0===H||null===(F=H.status)||void 0===F?void 0:F.write_quorum:0})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"Drives Online:",value:null!==H&&void 0!==H&&null!==(_=H.status)&&void 0!==_&&_.drives_online?null===H||void 0===H||null===(z=H.status)||void 0===z?void 0:z.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,j.jsx)(m.ZP,{item:!0,xs:12,children:(0,j.jsx)(N.Z,{label:"Drives Offline:",value:null!==H&&void 0!==H&&null!==(B=H.status)&&void 0!==B&&B.drives_offline?null===H||void 0===H||null===(U=H.status)||void 0===U?void 0:U.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,j.jsx)(E.Z,{children:"Features"}),(0,j.jsxs)(v.Z,{sx:(0,a.Z)({},L),children:[(0,j.jsx)(N.Z,(0,a.Z)({orientation:"row",label:"Logs:",value:O(q,"tenant-log")},$)),(0,j.jsx)(N.Z,(0,a.Z)({orientation:"row",label:"AD/LDAP:",value:O(X,"tenant-sts")},$)),(0,j.jsx)(N.Z,(0,a.Z)({orientation:"row",label:"Encryption:",value:O(Q,"tenant-enc")},$))]}),(0,j.jsxs)(v.Z,{sx:(0,a.Z)({},L),children:[(0,j.jsx)(N.Z,(0,a.Z)({orientation:"row",label:"MinIO TLS:",value:O(Y,"tenant-tls")},$)),(0,j.jsx)(N.Z,(0,a.Z)({orientation:"row",label:"Monitoring:",value:O(J,"tenant-monitor")},$)),(0,j.jsx)(N.Z,(0,a.Z)({orientation:"row",label:"OpenID:",value:O(ee,"tenant-oidc")},$))]})]})}))},22512:function(e,n,t){var i=t(72791),a=t(20890),o=t(11135),l=t(25787),r=t(80184);n.Z=(0,l.Z)((function(e){var n;return(0,o.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,o=e.withBreak,l=void 0===o||o;return(0,r.jsxs)(i.Fragment,{children:[l&&(0,r.jsx)("br",{}),(0,r.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(95318);n.Z=void 0;var a=i(t(45649)),o=t(80184),l=(0,a.default)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=l},53767:function(e,n,t){var i=t(4942),a=t(63366),o=t(87462),l=t(72791),r=t(51184),s=t(45682),c=t(78519),d=t(82466),u=t(66934),m=t(31402),v=t(80184),p=["component","direction","spacing","divider","children"];function h(e,n){var t=l.Children.toArray(e).filter(Boolean);return t.reduce((function(e,i,a){return e.push(i),a :not(style) + :not(style)":(0,i.Z)({margin:0},"margin".concat((a=t?u[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[a])),(0,s.NA)(l,e))};var a})))}return a})),g=l.forwardRef((function(e,n){var t=(0,m.Z)({props:e,name:"MuiStack"}),i=(0,c.Z)(t),l=i.component,r=void 0===l?"div":l,s=i.direction,d=void 0===s?"column":s,u=i.spacing,g=void 0===u?0:u,x=i.divider,Z=i.children,j=(0,a.Z)(i,p),b={direction:d,spacing:g};return(0,v.jsx)(f,(0,o.Z)({as:r,ownerState:b,ref:n},j,{children:x?h(Z,x):Z}))}));n.Z=g},23688:function(e,n,t){function i(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function a(e){this.setState(function(n){var t=this.constructor.getDerivedStateFromProps(e,n);return null!==t&&void 0!==t?t:null}.bind(this))}function o(e,n){try{var t=this.props,i=this.state;this.props=e,this.state=n,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(t,i)}finally{this.props=t,this.state=i}}function l(e){var n=e.prototype;if(!n||!n.isReactComponent)throw new Error("Can only polyfill class components");if("function"!==typeof e.getDerivedStateFromProps&&"function"!==typeof n.getSnapshotBeforeUpdate)return e;var t=null,l=null,r=null;if("function"===typeof n.componentWillMount?t="componentWillMount":"function"===typeof n.UNSAFE_componentWillMount&&(t="UNSAFE_componentWillMount"),"function"===typeof n.componentWillReceiveProps?l="componentWillReceiveProps":"function"===typeof n.UNSAFE_componentWillReceiveProps&&(l="UNSAFE_componentWillReceiveProps"),"function"===typeof n.componentWillUpdate?r="componentWillUpdate":"function"===typeof n.UNSAFE_componentWillUpdate&&(r="UNSAFE_componentWillUpdate"),null!==t||null!==l||null!==r){var s=e.displayName||e.name,c="function"===typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+c+" but also contains the following legacy lifecycles:"+(null!==t?"\n "+t:"")+(null!==l?"\n "+l:"")+(null!==r?"\n "+r:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"===typeof e.getDerivedStateFromProps&&(n.componentWillMount=i,n.componentWillReceiveProps=a),"function"===typeof n.getSnapshotBeforeUpdate){if("function"!==typeof n.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");n.componentWillUpdate=o;var d=n.componentDidUpdate;n.componentDidUpdate=function(e,n,t){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:t;d.call(this,e,n,i)}}return e}t.r(n),t.d(n,{polyfill:function(){return l}}),i.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0}}]);
-//# sourceMappingURL=1030.d7679dcf.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1030.d7679dcf.chunk.js.map b/portal-ui/build/static/js/1030.d7679dcf.chunk.js.map
deleted file mode 100644
index 97593052f..000000000
--- a/portal-ui/build/static/js/1030.d7679dcf.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1030.d7679dcf.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Tenants/TenantDetails/EditDomains.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n {children}\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n \n {titleIcon} {title}\n
\n \n \n \n \n
\n \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n {label}\n \n \n {value}\n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n
\n );\n })}\n
\n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"../../../../icons\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\"\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n \n \n
\n );\n }\n\n return (\n \n
\n \n
\n
\n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n
\n \n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n
\n
\n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useDispatch } 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 { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n classes,\n}: IUpdateTenantModal) => {\n const dispatch = useDispatch();\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage]\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n enable_prometheus: true,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n \n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
\n \n \n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n \n \n \n Clear\n \n \n Save\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(UpdateTenantModal);\n","import React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { LinearProgress, Stack } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n CapacityValues,\n ITenant,\n ValueUnit,\n} from \"../../Tenants/ListTenants/types\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport Loader from \"../Loader/Loader\";\nimport TenantCapacity from \"../../Tenants/ListTenants/TenantCapacity\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport LabelValuePair from \"./LabelValuePair\";\n\ninterface ISummaryUsageBar {\n tenant: ITenant;\n label: string;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n centerItem: {\n textAlign: \"center\",\n },\n });\n\nexport const BorderLinearProgress = withStyles((theme) => ({\n root: {\n height: 10,\n borderRadius: 5,\n },\n colorPrimary: {\n backgroundColor: \"#F4F4F4\",\n },\n bar: {\n borderRadius: 5,\n backgroundColor: \"#081C42\",\n },\n padChart: {\n padding: \"5px\",\n },\n}))(LinearProgress);\n\nconst SummaryUsageBar = ({\n classes,\n tenant,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.status?.usage?.raw) {\n const b = niceBytes(`${tenant.status.usage.raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity) {\n const b = niceBytes(`${tenant.status.usage.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity_usage) {\n const b = niceBytesInt(tenant.status.usage.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.status?.usage?.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size, variant: itemTenant.name };\n });\n let internalUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n \n )}\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n \n )}\n {healthStatus && (\n \n \n \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n \n \n \n \n
\n )}\n {renderComponent()}\n \n );\n};\n\nexport default withStyles(styles)(SummaryUsageBar);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, Grid, IconButton } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IDomainsRequest,\n} from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport api from \"../../../../common/api\";\nimport RemoveIcon from \"../../../../icons/RemoveIcon\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\n\ninterface IEditDomains {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n domains: IDomainsRequest | null;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n domainInline: {\n display: \"flex\",\n marginBottom: 15,\n },\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n width: 15,\n height: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst EditDomains = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n domains,\n classes,\n}: IEditDomains) => {\n const dispatch = useDispatch();\n const [isSending, setIsSending] = useState(false);\n const [consoleDomain, setConsoleDomain] = useState(\"\");\n const [minioDomains, setMinioDomains] = useState([\"\"]);\n const [consoleDomainValid, setConsoleDomainValid] = useState(true);\n const [minioDomainValid, setMinioDomainValid] = useState([true]);\n\n useEffect(() => {\n if (domains) {\n const consoleDomainSet = domains.console || \"\";\n setConsoleDomain(consoleDomainSet);\n\n if (consoleDomainSet !== \"\") {\n // We Validate console domain\n const consoleRegExp = new RegExp(\n /((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\/[a-zA-Z0-9]{1,})*?$/\n );\n\n setConsoleDomainValid(consoleRegExp.test(consoleDomainSet));\n } else {\n setConsoleDomainValid(true);\n }\n\n if (domains.minio && domains.minio.length > 0) {\n setMinioDomains(domains.minio);\n\n const minioRegExp = new RegExp(\n /((http|https):\\/\\/)+[a-zA-Z0-9\\-.]{3,}\\.[a-zA-Z]{2,}(\\.[a-zA-Z]{2,})?$/\n );\n\n const initialValidations = domains.minio.map((domain) => {\n if (domain.trim() !== \"\") {\n return minioRegExp.test(domain);\n } else {\n return true;\n }\n });\n\n setMinioDomainValid(initialValidations);\n }\n }\n }, [domains]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setConsoleDomain(\"\");\n setConsoleDomainValid(true);\n setMinioDomains([\"\"]);\n setMinioDomainValid([true]);\n };\n\n const updateDomainsList = () => {\n setIsSending(true);\n\n let payload = {\n domains: {\n console: consoleDomain,\n minio: minioDomains.filter((minioDomain) => minioDomain.trim() !== \"\"),\n },\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}/domains`,\n payload\n )\n .then(() => {\n setIsSending(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const cloneDomains = [...minioDomains];\n cloneDomains[index] = value;\n\n setMinioDomains(cloneDomains);\n };\n\n const addNewMinIODomain = () => {\n const cloneDomains = [...minioDomains];\n const cloneValidations = [...minioDomainValid];\n\n cloneDomains.push(\"\");\n cloneValidations.push(true);\n\n setMinioDomains(cloneDomains);\n setMinioDomainValid(cloneValidations);\n };\n\n const removeMinIODomain = (removeIndex: number) => {\n const filteredDomains = minioDomains.filter(\n (_, index) => index !== removeIndex\n );\n\n const filterValidations = minioDomainValid.filter(\n (_, index) => index !== removeIndex\n );\n\n setMinioDomains(filteredDomains);\n setMinioDomainValid(filterValidations);\n };\n\n const setMinioDomainValidation = (domainValid: boolean, index: number) => {\n const cloneValidation = [...minioDomainValid];\n cloneValidation[index] = domainValid;\n\n setMinioDomainValid(cloneValidation);\n };\n\n return (\n \n \n \n \n \n ) => {\n setConsoleDomain(e.target.value);\n\n setConsoleDomainValid(e.target.validity.valid);\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n pattern={\n \"((http|https):\\\\/\\\\/)+[a-zA-Z0-9\\\\-.]{3,}\\\\.[a-zA-Z]{2,}(\\\\.[a-zA-Z]{2,})?(:[1-9]{1}([0-9]{1,4})?)?(\\\\/[a-zA-Z0-9]{1,})*?$\"\n }\n error={\n !consoleDomainValid\n ? \"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)\"\n : \"\"\n }\n />\n
\n \n
MinIO Domains \n
\n {minioDomains.map((domain, index) => {\n return (\n
\n
) => {\n updateMinIODomain(e.target.value, index);\n setMinioDomainValidation(\n e.target.validity.valid,\n index\n );\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n pattern={\n \"((http|https):\\\\/\\\\/)+[a-zA-Z0-9\\\\-.]{3,}\\\\.[a-zA-Z]{2,}(\\\\.[a-zA-Z]{2,})?$\"\n }\n error={\n !minioDomainValid[index]\n ? \"MinIO domain format is incorrect (http|https://subdomain.domain)\"\n : \"\"\n }\n />\n \n\n \n removeMinIODomain(index)}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n \n );\n })}\n
\n
\n \n \n \n Clear\n \n !domain).length > 0\n }\n onClick={updateDomainsList}\n >\n Save\n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(EditDomains);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid } from \"@mui/material\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState } from \"../../../../store\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport SectionTitle from \"../../Common/SectionTitle\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { EditIcon } from \"../../../../icons\";\nimport EditDomains from \"./EditDomains\";\nimport { setTenantDetailsLoad } from \"../tenantsSlice\";\nimport { ITenant } from \"../ListTenants/types\";\n\ninterface ITenantsSummary {\n classes: any;\n match: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n detailSection: {\n \"& div\": {\n \"& b,i\": {\n minWidth: 80,\n display: \"block\",\n float: \"left\",\n },\n \"& i\": {\n fontStyle: \"normal\",\n wordWrap: \"break-word\",\n overflowWrap: \"break-word\",\n },\n \"& div\": {\n clear: \"both\",\n },\n clear: \"both\",\n marginBottom: 2,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n fontFamily: \"'Lato', sans-serif\",\n },\n autoGeneratedLink: {\n fontStyle: \"italic\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({\n tenant,\n classes,\n}: {\n tenant: ITenant | null;\n classes: any;\n}) => {\n if (!tenant) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n return (\n {}}\n switchOnly\n />\n );\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({ classes, match }: ITenantsSummary) => {\n const dispatch = useDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const logEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"logEnabled\", false)\n );\n const monitoringEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"monitoringEnabled\", false)\n );\n const encryptionEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"encryptionEnabled\", false)\n );\n const minioTLS = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"minioTLS\", false)\n );\n const adEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpAdEnabled\", false)\n );\n const oidcEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpOidcEnabled\", false)\n );\n\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n const [editDomainsOpen, setEditDomainsOpen] = useState(false);\n\n 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 const closeEditDomainsModal = (refresh: boolean) => {\n setEditDomainsOpen(false);\n\n if (refresh) {\n dispatch(setTenantDetailsLoad(true));\n }\n };\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n }}\n idTenant={tenantName}\n namespace={tenantNamespace}\n />\n )}\n\n {editDomainsOpen && (\n \n )}\n\n Details \n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n \n Domains\n }\n title={\"\"}\n onClick={() => {\n setEditDomainsOpen(true);\n }}\n />\n \n \n \n \n {(!tenant?.domains?.console ||\n tenant?.domains?.console === \"\") &&\n !tenant?.endpoints?.console\n ? \"-\"\n : \"\"}\n\n {tenant?.endpoints?.console && (\n \n \n {tenant?.endpoints?.console || \"-\"}\n \n \n \n )}\n\n {tenant?.domains?.console && tenant?.domains?.console !== \"\" && (\n \n {tenant?.domains?.console || \"\"}\n \n )}\n \n }\n />\n \n \n \n {!tenant?.domains?.minio && !tenant?.endpoints?.minio\n ? \"-\"\n : \"\"}\n {tenant?.endpoints?.minio && (\n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n \n \n )}\n\n {tenant?.domains?.minio &&\n tenant.domains.minio.map((domain) => {\n return (\n \n \n {domain}\n \n \n \n );\n })}\n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n Features \n \n \n\n \n \n \n \n \n\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(TenantSummary);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak && }\n \n {errorMessage}\n \n \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","classes","children","rest","className","deleteDialogStyles","content","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","wideLimit","noContentPadding","titleIcon","dispatch","useDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","totalValue","sizeItems","bgColor","height","borderRadius","display","transitionDuration","overflow","map","sizeElement","index","itemPercentage","toString","totalCapacity","usedSpaceVariants","statusClass","render","colors","BGColor","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","variant","filter","standardTierColor","usedPercentage","plotValues","plotValuesForUsageBar","plotVal","itemName","marginBottom","position","right","top","zIndex","left","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","minioImage","setMinioImage","imageRegistry","setImageRegistry","imageRegistryEndpoint","setImageRegistryEndpoint","imageRegistryUsername","setImageRegistryUsername","imageRegistryPassword","setImageRegistryPassword","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","disabled","trim","payload","image","enable_prometheus","registry","image_registry","username","password","api","then","catch","error","setModalErrorSnackMessage","colorPrimary","bar","padChart","LinearProgress","centerItem","textAlign","tenant","healthStatus","loading","raw","unit","capacity","used","localUse","tieredUse","status","usage","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","internalUsage","sum","tieredUsage","partsInternal","Loader","ErrorBlock","errorMessage","withBreak","TenantCapacity","Stack","spacing","md","alignItems","LabelValuePair","renderComponent","domainInline","overlayAction","marginLeft","background","domains","consoleDomain","setConsoleDomain","minioDomains","setMinioDomains","consoleDomainValid","setConsoleDomainValid","minioDomainValid","setMinioDomainValid","consoleDomainSet","console","consoleRegExp","minio","minioRegExp","initialValidations","domain","addNewMinIODomain","cloneDomains","cloneValidations","push","configSectionItem","containerItem","validity","valid","updateMinIODomain","domainValid","cloneValidation","setMinioDomainValidation","IconButton","Add","removeIndex","filteredDomains","_","filterValidations","removeMinIODomain","RemoveIcon","minioDomain","healthStatusToClass","health_status","redState","yellowState","greenState","greyState","StorageSummary","getToggle","toggleValue","idPrefix","switchOnly","featureRowStyle","justifyContent","marginTop","flexFlow","featureItemStyleProps","sx","flex","minWidth","tenantDetailsStyles","warning","success","detailSection","float","fontStyle","wordWrap","overflowWrap","clear","linkedSection","autoGeneratedLink","containerForHeader","match","tenants","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","adEnabled","oidcEnabled","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","editDomainsOpen","setEditDomainsOpen","tenantName","params","tenantNamespace","pools","total_volumes","total_instances","refresh","setTenantDetailsLoad","SectionTitle","separator","currentState","AButton","textOverflow","whiteSpace","wordBreak","RBIconButton","icon","endpoints","href","rel","write_quorum","drives_online","drives_offline","Box","errorBlock","component","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_excluded","joinChildren","childrenArray","React","Boolean","output","child","key","StackRoot","styled","slot","overridesResolver","props","styles","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","flexDirection","transformer","createUnarySpacing","base","Object","keys","breakpoint","directionValues","spacingValues","deepmerge","row","column","getValue","inProps","ref","themeProps","useThemeProps","extendSxProp","divider","other","_objectWithoutPropertiesLoose","_jsx","as","componentWillMount","this","constructor","getDerivedStateFromProps","undefined","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1182.cd571ded.chunk.js b/portal-ui/build/static/js/1182.cd571ded.chunk.js
new file mode 100644
index 000000000..da470ea42
--- /dev/null
+++ b/portal-ui/build/static/js/1182.cd571ded.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1182],{23804:function(e,t,i){i(72791);var n=i(11135),a=i(25787),l=i(61889),r=i(80184);t.Z=(0,a.Z)((function(e){return(0,n.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,i=e.iconComponent,n=e.title,a=e.help;return(0,r.jsx)("div",{className:t.root,children:(0,r.jsxs)(l.ZP,{container:!0,children:[(0,r.jsxs)(l.ZP,{item:!0,xs:12,className:t.leftItems,children:[i,n]}),(0,r.jsx)(l.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},63856:function(e,t,i){var n=i(1413),a=(i(72791),i(11135)),l=i(25787),r=i(64554),o=i(61889),s=i(36151),d=i(27197),c=i(32686),x=i(23814),u=i(80705),p=i(85090),f=i(3923),h=i(80184),m=function(){return(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px"}},children:(0,h.jsx)(f.Q2V,{})})};t.Z=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},x.OR),x.bN),{},{syncButton:{"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type":{fontSize:18}},schedulerIcon:{opacity:.4,fontSize:10,"& svg":{width:18,height:18}},selectorLabel:{color:"#9D9E9D",fontWeight:"bold",whiteSpace:"nowrap",marginLeft:10,fontSize:12}}))}))((function(e){var t=e.classes,i=e.timeStart,n=e.setTimeStart,a=e.timeEnd,l=e.setTimeEnd,x=e.triggerSync,f=e.label,g=void 0===f?"Filter:":f,v=e.startLabel,j=void 0===v?"Start Time:":v,b=e.endLabel,y=void 0===b?"End Time:":b;return(0,h.jsx)(o.ZP,{item:!0,xs:12,sx:{"& .filter-date-input-label, .end-time-input-label":{display:"none"},"& .MuiInputBase-adornedEnd.filter-date-date-time-input":{width:"100%",border:"1px solid #eaeaea",paddingLeft:"8px",paddingRight:"8px",borderRadius:"1px"},"& .MuiInputAdornment-root button":{height:"20px",width:"20px",marginRight:"5px"},"& .filter-date-input-wrapper":{height:"30px",width:"100%","& .MuiTextField-root":{height:"30px",width:"90%","& input.Mui-disabled":{color:"#000000",WebkitTextFillColor:"#101010"}}}},children:(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},alignItems:"center",gridTemplateColumns:{md:"auto 2fr auto",sm:"1fr"},padding:{md:"0",xs:" 5px"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{fontSize:"14px",fontWeight:500,marginRight:"5px"},children:g}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},border:{md:"1px solid #eaeaea"},alignItems:"center",gridTemplateColumns:{md:"1fr 1fr",sm:"1fr"},gap:"8px",paddingLeft:"8px",paddingRight:"8px"},children:[(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(d.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:j}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:i,onChange:n,id:"stTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(c.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:y}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:a,onChange:l,id:"endTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]})]}),x&&(0,h.jsx)(r.Z,{sx:{alignItems:"flex-end",display:"flex",justifyContent:"flex-end",marginRight:"35px"},children:(0,h.jsx)(s.Z,{type:"button",variant:"contained",color:"primary",onClick:x,endIcon:(0,h.jsx)(p.Z,{}),className:t.syncButton,children:"Sync"})})]})})}))},80705:function(e,t,i){var n=i(1413),a=i(72791),l=i(27391),r=i(61889),o=i(30829),s=i(20068),d=i(49979),c=i(47341),x=i(71652),u=i(63466),p=i(27197),f=i(11135),h=i(25787),m=i(84570),g=i(23814),v=i(33976),j=i(80184);t.Z=(0,h.Z)((function(e){return(0,f.Z)((0,n.Z)((0,n.Z)({dateSelectorOverride:{height:40,border:"#EAEDEE 1px solid",marginLeft:15,backgroundColor:"#fff",padding:"0 16px",borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{borderColor:"#000","&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:600,color:"#393939"}},dateSelectorFilterOverride:{width:180,height:42,marginLeft:20,padding:0,borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{"&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:"bold",color:"#081C42"},"@media (max-width: 900px)":{width:103}},dateSelectorFormOverride:{width:"100%",maxWidth:840},parentDateOverride:{flexGrow:1},textBoxContainer:{flexGrow:1},openListIcon:{color:"#9D9E9D",width:8,marginTop:2},paperOverride:{"& .MuiCalendarPicker-root":{padding:"0 22px","& > div":{padding:0,"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type":{color:"#0A224C",fontWeight:"bold"},"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type":{color:"#9D9E9D","& + button.MuiButtonBase-root":{color:"#9D9E9D"}},"& > div:nth-child(2)":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"}}}},"& .MuiTypography-root.MuiTypography-caption":{width:26,height:26,margin:5,color:"#BCBCBC",fontSize:10},"& button.MuiPickersDay-root":{fontWeight:"bold",width:26,height:26,margin:5,textAlign:"center","&.Mui-selected":{backgroundColor:e.palette.primary.main,color:"#fff"}},"& div.MuiPickersDay-hiddenDaySpacingFiller":{width:26,height:26,margin:5},"& div.PrivatePickersSlideTransition-root":{minHeight:240},"& div.MuiCalendarPicker-viewTransitionContainer":{borderTop:"#F0F3F5 1px solid"},"& .MuiClockPicker-arrowSwitcher":{marginRight:10,marginTop:-1,"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"},"& + div > div":{width:255,height:255,backgroundColor:"#fff",marginTop:30,marginBottom:14,border:"#F0F3F5 3px solid","& > div:nth-child(2)":{backgroundColor:"#B4B5B4",width:12,height:12,"&::before":{content:"' '",width:35,height:35,display:"block",position:"absolute",border:"#F0F3F5 3px solid",top:-12,left:-12,borderRadius:"100%"}},"& > div:nth-child(3)":{backgroundColor:"#B4B5B4",width:4},"& > div:last-of-type":{marginTop:15,"& > span":{color:"#0A224C","&.Mui-selected":{color:"#fff"},"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']":{fontWeight:"bold",fontSize:20,marginTop:-1}}}}}}},g.YI),g.Hr))}))((function(e){var t=e.value,i=e.onChange,f=e.classes,h=e.forSearchBlock,g=void 0!==h&&h,b=e.forFilterContained,y=void 0!==b&&b,Z=e.label,C=e.tooltip,w=void 0===C?"":C,S=e.required,E=e.id,N=e.disabled,T=void 0!==N&&N,F=e.noInputIcon,I=void 0!==F&&F,A=e.classNamePrefix,k=void 0===A?"":A,L=e.openPickerIcon,B={};I||(B={startAdornment:(0,j.jsx)(u.Z,{position:"start",children:(0,j.jsx)(p.Z,{})})}),y&&(B={endAdornment:(0,j.jsx)(u.Z,{position:"end",children:(0,j.jsx)(v.Z,{className:f.openListIcon})})});var R="".concat(k,"date-time-input ").concat(g?f.dateSelectorOverride:""," ").concat(y&&!g?f.dateSelectorFilterOverride:""),W=g?f.parentDateOverride:f.dateSelectorFormOverride,D=(0,j.jsx)(x._,{dateAdapter:c.Z,children:(0,j.jsx)(d.x,{value:t,onChange:i,InputProps:(0,n.Z)((0,n.Z)({},B),{},{className:R}),components:{OpenPickerIcon:L},label:"",className:W,disabled:T,renderInput:function(e){return(0,j.jsx)(l.Z,(0,n.Z)((0,n.Z)({id:E,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:f.paperOverride}})});if(g)return D;var z=y?"":f.fieldContainer;return(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(z," ").concat(k,"input-field-container "),children:[""!==Z&&(0,j.jsxs)(o.Z,{htmlFor:E,className:"".concat(f.inputLabel," ").concat(k,"input-label"),children:[(0,j.jsxs)("span",{children:[Z,S?"*":""]}),""!==w&&(0,j.jsx)("div",{className:f.tooltipContainer,children:(0,j.jsx)(s.Z,{title:w,placement:"top-start",children:(0,j.jsx)("div",{className:f.tooltip,children:(0,j.jsx)(m.Z,{})})})})]}),(0,j.jsx)("div",{className:"".concat(f.textBoxContainer," ").concat(k,"input-wrapper "),children:D})]})})}))},56028:function(e,t,i){var n=i(29439),a=i(1413),l=i(72791),r=i(60364),o=i(13400),s=i(55646),d=i(5574),c=i(65661),x=i(39157),u=i(11135),p=i(25787),f=i(23814),h=i(81551),m=i(29823),g=i(28057),v=i(87995),j=i(80184);t.Z=(0,p.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))((function(e){var t=e.onClose,i=e.modalOpen,u=e.title,p=e.children,f=e.classes,b=e.wideLimit,y=void 0===b||b,Z=e.noContentPadding,C=e.titleIcon,w=void 0===C?null:C,S=(0,h.TL)(),E=(0,l.useState)(!1),N=(0,n.Z)(E,2),T=N[0],F=N[1],I=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,l.useEffect)((function(){S((0,v.MK)(""))}),[S]),(0,l.useEffect)((function(){if(I){if(""===I.message)return void F(!1);"error"!==I.type&&F(!0)}}),[I]);var A=y?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},k="";return I&&(k=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(k=I.message)),(0,j.jsxs)(d.Z,(0,a.Z)((0,a.Z)({open:i,classes:f},A),{},{scroll:"paper",onClose:function(e,i){"backdropClick"!==i&&t()},className:f.root,children:[(0,j.jsxs)(c.Z,{className:f.title,children:[(0,j.jsxs)("div",{className:f.titleText,children:[w," ",u]}),(0,j.jsx)("div",{className:f.closeContainer,children:(0,j.jsx)(o.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,j.jsx)(m.Z,{})})})]}),(0,j.jsx)(g.Z,{isModal:!0}),(0,j.jsx)(s.Z,{open:T,className:f.snackBarModal,onClose:function(){F(!1),S((0,v.MK)(""))},message:k,ContentProps:{className:"".concat(f.snackBar," ").concat(I&&"error"===I.type?f.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,j.jsx)(x.Z,{className:Z?"":f.content,children:p})]}))}))},31300:function(e,t,i){i(72791);var n=i(64554),a=i(3923),l=i(80184);t.Z=function(e){var t=e.onlineCount,i=void 0===t?0:t,r=e.offlineCount,o=void 0===r?0:r,s=e.icon,d=void 0===s?null:s,c=e.label,x=void 0===c?"":c,u=e.okStatusText,p=void 0===u?"Online":u,f=e.notOkStatusText,h=void 0===f?"Offline":f;return(0,l.jsx)(n.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,l.jsx)(n.Z,{sx:{fontSize:"16px",fontWeight:600},children:x}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:i}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,l.jsx)(a.J$M,{}),(0,l.jsx)("div",{className:"stat-text",children:p})]})]}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:o}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"8px","& .min-icon":{fill:"#C83B51"}},children:[(0,l.jsx)(a.J$M,{})," ",(0,l.jsx)("div",{className:"stat-text",children:h})]})]})]})]}),(0,l.jsx)(n.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:d})]})})}},879:function(e,t,i){i.d(t,{D_:function(){return r},Et:function(){return a},GJ:function(){return l},yh:function(){return n}});var n={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},a=function(e,t){return e<=t/2?n.RED:2!==t&&e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0},l=function(e){switch(e){case"offline":return n.RED;case"online":return n.GREEN;default:return n.YELLOW}},r=function(e,t){return e<=t/2?n.RED:e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0}},21182:function(e,t,i){i.r(t),i.d(t,{default:function(){return mt}});var n,a=i(29439),l=i(1413),r=i(72791),o=i(26181),s=i.n(o),d=i(93433),c=i(60364),x=i(61889),u=i(11135),p=i(25787),f=i(64554),h=i(23814);!function(e){e.singleValue="singleValue",e.linearGraph="linearGraph",e.areaGraph="areaGraph",e.barChart="barChart",e.pieChart="pieChart",e.singleRep="singleRep",e.simpleWidget="simpleWidget"}(n||(n={}));var m=i(45248),g=i(51846),v=i(82332),j=i(3923),b=i(80184),y=["#C4D4E9","#DCD1EE","#D1EEE7","#EEDED1","#AAF38F","#F9E6C5","#C83B51","#F4CECE","#D6D6D6"],Z=function(e){return(0,m.v1)(e,"ns")},C=function(e){return parseInt(e).toString(10)},w=[{id:1,title:"Uptime",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(j.oNq,{}),labelDisplayFunction:m.v1},{id:50,title:"Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:51,title:"Usable Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:68,title:"Data Usage Growth",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.areaGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:52,title:"Object size distribution",data:[],widgetConfiguration:[{dataKey:"a",color:"#2781B0",background:{fill:"#EEF1F4"},greatestColor:"#081C42"}],customStructure:[{originTag:"LESS_THAN_1024_B",displayTag:"Less than 1024B"},{originTag:"BETWEEN_1024_B_AND_1_MB",displayTag:"Between 1024B and 1MB"},{originTag:"BETWEEN_1_MB_AND_10_MB",displayTag:"Between 1MB and 10MB"},{originTag:"BETWEEN_10_MB_AND_64_MB",displayTag:"Between 10MB and 64MB"},{originTag:"BETWEEN_64_MB_AND_128_MB",displayTag:"Between 64MB and 128MB"},{originTag:"BETWEEN_128_MB_AND_512_MB",displayTag:"Between 128MB and 512MB"},{originTag:"GREATER_THAN_512_MB",displayTag:"Greater than 512MB"}],type:n.barChart},{id:66,title:"Buckets",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:44,title:"Objects",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:63,title:"API Data Received Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000",strokeWidth:3}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:61,title:"Total Open FDs",data:[],innerLabel:"N/A",type:n.singleRep,color:"#22B573",fillColor:"#A6E8C4"},{id:62,title:"Total Goroutines",data:[],innerLabel:"N/A",type:n.singleRep,color:"#F7655E",fillColor:"#F4CECE"},{id:77,title:"Node CPU Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:60,title:"API Request Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:70,title:"API Data Sent Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:17,title:"Internode Data Transfer",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:73,title:"Node IO",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:80,title:"Time Since Last Heal Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(g.Z,{}),labelDisplayFunction:Z},{id:81,title:"Time Since Last Scan Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(v.Z,{}),labelDisplayFunction:Z},{id:71,title:"API Request Error Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue},{id:76,title:"Node Memory Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:74,title:"Drive Used Capacity",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:82,title:"Drives Free Inodes",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,disableYAxis:!0,xAxisFormatter:m.Ue},{id:11,title:"Node Syscalls",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:8,title:"Node File Descriptors",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:500,mergedPanels:[{id:53,title:"Online",data:"N/A",type:n.singleValue},{id:69,title:"Offline",data:"N/A",type:n.singleValue}],title:"Servers"},{id:501,mergedPanels:[{id:9,title:"Online",data:"N/A",type:n.singleValue},{id:78,title:"Offline",data:"N/A",type:n.singleValue}],title:"Drives"},{id:502,mergedPanels:[{id:65,title:"Upload",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae},{id:64,title:"Download",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae}],title:"Network"}],S=function(e,t){if(0===e.length)return["","0"];if("mean"===t){var i=e.reduce((function(e,t){return e+parseFloat(t[1])}),0);return["",Math.floor(i/e.length).toString()]}var n=e.sort((function(e,t){return e[0]-t[0]}));return n[n.length-1]},E=function(e,t){if(!e)return t;var i=e.type;switch(t.type){case n.singleValue:case n.simpleWidget:if("stat"===i||"singlestat"===i){var a=s()(e,"targets[0].result[0].values",[]);null===a&&(a=[]);var r=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),o=S(a,r),d=t.labelDisplayFunction?t.labelDisplayFunction(o[1]):o[1];return(0,l.Z)((0,l.Z)({},t),{},{data:d})}break;case n.pieChart:if("gauge"===i){var c=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),x=s()(e,"targets",[]).filter((function(e){return null!==e})),u=x.map((function(e){var t=(e.result&&Array.isArray(e.result)?e.result:[]).map((function(t){var i=s()(t,"values",[]),n=Object.keys(t.metric),a=i.sort((function(e,t){return parseInt(e[0][1])-parseInt(t[0][1])})),l=t.metric[n[0]],r=a[a.length-1];return{name:l,value:parseInt(r[1]),legend:e.legendFormat}}));return t})),p=x[0].result&&x[0].result.length>0?x[0].result[0].values:[],f=S(p,c),h=t.labelDisplayFunction?t.labelDisplayFunction(f[1]):f[1];return(0,l.Z)((0,l.Z)({},t),{},{data:u,innerLabel:h})}break;case n.linearGraph:case n.areaGraph:if("graph"===i){var g=s()(e,"targets",[]);null===g&&(g=[]);var v=[],j=[];g.forEach((function(e,t){var i=s()(e,"result",[]),n=e.legendFormat;null===i&&(i=[]),i.forEach((function(e){var i=function(e,t){var i=Object.keys(e),n=new RegExp("{{(".concat(i.join("|"),")}}"),"g"),a=t.replace(n,(function(t){var i=t.replace(/({{|}})/g,"");return e[i]})),l=(a.match(/{{/g)||[]).length,r=(a.match(/}}/g)||[]).length,o=a.replace(/{{(.*?)}}/g,"");return l===r&&0!==l&&0!==r&&(i.forEach((function(t){a=a.replace(t,e[t])})),o=a),o}(e.metric,n),a="key_".concat(t).concat(i);v.push({dataKey:a,keyLabel:i,lineColor:"",fillColor:""});var l=s()(e,"values",[]);null===l&&(l=[]),l.forEach((function(e){var t=j.findIndex((function(t){return t.name===e[0]}));if(-1===t){var i={name:e[0]};i[a]=e[1],j.push(i)}else j[t][a]=e[1]}))}))}));var b=v.sort((function(e,t){return e.keyLabelt.keyLabel?1:0})).map((function(e,t){return(0,l.Z)((0,l.Z)({},e),{},{lineColor:y[t]||(0,m.C5)(e.keyLabel),fillColor:y[t]||(0,m.C5)(e.keyLabel)})})),Z=j.sort((function(e,t){return e.name-t.name}));return(0,l.Z)((0,l.Z)({},t),{},{widgetConfiguration:b,data:Z})}break;case n.barChart:if("bargauge"===i){var C=s()(e,"targets[0].result",[]);null===C&&(C=[]);var w=function(e,t){return e[0]-t[0]},E=[];return E=t.customStructure?t.customStructure.map((function(e){var t=C.find((function(t){var i=Object.keys(t.metric);return t.metric[i[0]]===e.originTag})),i=s()(t,"values",[]).sort(w),n=i[i.length-1]||["","0"];return{name:e.displayTag,a:parseInt(n[1])}})):C.map((function(e){var t=Object.keys(e.metric),i=e.metric[t[0]],n=s()(e,"values",[]).sort(w),a=n[n.length-1]||["","0"];return{name:i,a:parseInt(a[1])}})),(0,l.Z)((0,l.Z)({},t),{},{data:E})}break;case n.singleRep:if("stat"===i){var N=s()(e,"targets[0].result[0].values",[]);null===N&&(N=[]);var T=s()(e,"options.reduceOptions.calcs[0]","lastNotNull"),F=S(N,T),I=N.sort((function(e,t){return e[0]-t[0]})),A=[];1===I.length&&A.push({value:0}),I.forEach((function(e){A.push({value:parseInt(e[1])})}));var k=t.labelDisplayFunction?t.labelDisplayFunction(F[1]):F[1];return(0,l.Z)((0,l.Z)({},t),{},{data:A,innerLabel:k})}}return t},N=function(e){var t=e.split(" "),i=function(){var t=e;return isNaN(parseFloat(e))||(t=(0,m.nk)(parseFloat(e))),(0,b.jsx)(r.Fragment,{children:t})};return 2!==t.length?i():m.Dl.includes(t[1])?(0,b.jsxs)("span",{className:"commonValue",children:[t[0],(0,b.jsx)("span",{className:"unitText",children:t[1]})]}):i()},T=i(19847),F=i(81207),I=i(72455),A=i(18073),k=i(43896),L=(0,I.Z)({tabRoot:{height:"40px",borderBottom:"1px solid #eaeaea"},root:{width:"120px",backgroundColor:"transparent",paddingTop:0,paddingBottom:0,fontSize:"14px",fontWeight:600,color:"#07193E",height:"40px"},selected:{"&.MuiTab-selected":{backgroundColor:"#F6F7F7 !important"},"&.MuiTab-wrapper":{color:"#07193E",fontWeight:600}},indicator:{background:"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;",height:2},scroller:{maxWidth:1185,position:"relative","&::after":{content:'" "',backgroundColor:"#EEF1F4",height:2,width:"100%",display:"block"}}}),B=function(e){var t=e.selectedTab,i=e.onChange,n=e.tabOptions,a=L();return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(A.Z,{indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",value:t,onChange:function(e,t){i(t)},classes:{root:a.tabRoot,indicator:a.indicator,scroller:a.scroller},children:n.map((function(e,t){var i={label:e.label};return e.value&&(i=(0,l.Z)((0,l.Z)({},i),{},{value:e.value})),e.disabled&&(i=(0,l.Z)((0,l.Z)({},i),{},{disabled:e.disabled})),(0,r.createElement)(k.Z,(0,l.Z)((0,l.Z)({},i),{},{classes:{root:a.root,selected:a.selected},id:"simple-tab-".concat(t),"aria-controls":"simple-tabpanel-".concat(t),key:"tab-".concat(t,"-").concat(e.label)}))}))})})},R=i(19913),W=i(38725),D=i(90466),z=i(12891),P=i(24714),M=i(41048),O=i(35667),G=i(95193),U=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.barChartConfiguration,l=e.classes;return t?(0,b.jsxs)("div",{className:l.customTooltip,children:[(0,b.jsx)("div",{className:l.timeStampTitle,children:n}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:l.labelContainer,children:[(0,b.jsx)("div",{className:l.labelColor,style:{backgroundColor:a[t].color}}),(0,b.jsx)("div",{className:l.itemValue,children:(0,b.jsx)("span",{className:l.valueContainer,children:e.value})})]},"pltiem-".concat(t,"-").concat(n))}))]}):null})),_=i(29598),K=i(72401),V=i(64119),H=i(71080),$=i(81551),Y=function(e){var t=e.panelItem,i=(0,$.TL)();return(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"10px","& .link-text":{color:"#2781B0",fontSize:"12px",fontWeight:600},"& .zoom-graph-icon":{backgroundColor:"transparent",border:0,padding:0,cursor:"pointer","& svg":{color:"#D0D0D0",height:16},"&:hover":{"& svg":{color:"#404143"}}}},children:[(0,b.jsx)("a",{href:"void:(0);",rel:"noreferrer noopener",className:"link-text",onClick:function(e){e.preventDefault(),i((0,H.xG)(t))},children:"Expand Graph"}),(0,b.jsx)("button",{onClick:function(){i((0,H.xG)(t))},className:"zoom-graph-icon",children:(0,b.jsx)(V.Z,{})})]})},J=i(87995),q=function(e){var t=e.y,i=e.payload;return(0,b.jsx)("text",{width:50,fontSize:"69.7%",textAnchor:"start",fill:"#333",transform:"translate(5,".concat(t,")"),fontWeight:400,dy:3,children:i.value})},Q=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{loadingAlign:{width:"100%",paddingTop:"15px",textAlign:"center",margin:"auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.panelItem,l=e.timeStart,o=e.timeEnd,s=e.propLoading,d=e.apiPrefix,c=e.zoomActivated,x=void 0!==c&&c,u=(0,$.TL)(),p=(0,r.useState)(!0),f=(0,a.Z)(p,2),h=f[0],m=f[1],g=(0,r.useState)([]),v=(0,a.Z)(g,2),j=v[0],y=v[1],Z=(0,r.useState)(null),C=(0,a.Z)(Z,2),w=C[0],S=C[1];(0,r.useEffect)((function(){s&&m(!0)}),[s]),(0,r.useEffect)((function(){if(h){var e=0;if(null!==l&&null!==o){var t=o.unix()-l.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(n.id,"/?step=").concat(e,"&").concat(null!==l?"&start=".concat(l.unix()):"").concat(null!==l&&null!==o?"&":"").concat(null!==o?"end=".concat(o.unix()):"")).then((function(e){var t=E(e,n);y(t.data),S(t),m(!1)})).catch((function(e){u((0,J.Ih)(e)),m(!1)}))}}),[h,n,o,l,u,d]);var N=w?w.widgetConfiguration:[],T=0,I=0;if(1===N.length){var A=N[0];j.forEach((function(e,t){e[A.dataKey]>I&&(I=e[A.dataKey],T=t)}))}var k=(0,_.Z)(),L=(0,G.Z)(k.breakpoints.up("md"));return(0,b.jsxs)("div",{className:x?"":t.singleValueContainer,children:[!x&&(0,b.jsxs)("div",{className:t.titleContainer,children:[i," ",(0,b.jsx)(Y,{panelItem:n})]}),h&&(0,b.jsx)("div",{className:t.loadingAlign,children:(0,b.jsx)(K.Z,{})}),!h&&(0,b.jsx)("div",{className:x?t.zoomChartCont:t.contentContainer,children:(0,b.jsx)(R.h,{width:"99%",children:(0,b.jsxs)(W.v,{data:j,layout:"vertical",barCategoryGap:1,children:[(0,b.jsx)(D.K,{type:"number",hide:!0}),(0,b.jsx)(z.B,{dataKey:"name",type:"category",interval:0,tick:(0,b.jsx)(q,{}),tickLine:!1,axisLine:!1,width:150,hide:!L,style:{fontSize:"12px",fontWeight:100}}),N.map((function(e){return(0,b.jsx)(P.$,{dataKey:e.dataKey,fill:e.color,background:e.background,barSize:x?25:12,children:1===N.length?(0,b.jsx)(r.Fragment,{children:j.map((function(t,i){return(0,b.jsx)(M.b,{fill:i===T?e.greatestColor:e.color},"chart-bar-".concat(i.toString()))}))}):null},"bar-".concat(e.dataKey))})),(0,b.jsx)(O.u,{cursor:{fill:"rgba(255, 255, 255, 0.3)"},content:(0,b.jsx)(U,{barChartConfiguration:N})})]})})})]})})),X=i(37762),ee=i(28265),te=i(82839),ie=i(18602),ne=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.linearConfiguration,l=e.yAxisFormatter,r=e.classes;return t?(0,b.jsxs)("div",{className:r.customTooltip,children:[(0,b.jsx)("div",{className:r.timeStampTitle,children:(0,m.Ue)(n,!0)}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:r.labelContainer,children:[(0,b.jsx)("div",{className:r.labelColor,style:{backgroundColor:a[t].lineColor}}),(0,b.jsx)("div",{className:r.itemValue,children:(0,b.jsxs)("span",{className:r.valueContainer,children:[a[t].keyLabel,":"," ",l(e.value)]})})]},"lbPl-".concat(t,"-").concat(a[t].keyLabel))}))]}):null})),ae=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{verticalAlignment:{flexDirection:"column"},chartCont:{position:"relative",height:140,width:"100%"},legendChart:{display:"flex",flexDirection:"column",flex:"0 1 auto",maxHeight:130,margin:0,overflowY:"auto",position:"relative",textAlign:"center",width:"100%",justifyContent:"flex-start",color:"#404143",fontWeight:"bold",fontSize:12},loadingAlign:{width:40,height:40,textAlign:"center",margin:"15px auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.timeStart,l=e.timeEnd,o=e.propLoading,s=e.panelItem,d=e.apiPrefix,c=e.hideYAxis,x=void 0!==c&&c,u=e.areaWidget,p=void 0!==u&&u,h=e.yAxisFormatter,m=void 0===h?function(e){return e}:h,g=e.xAxisFormatter,v=void 0===g?function(e){return e}:g,j=e.zoomActivated,y=void 0!==j&&j,Z=(0,$.TL)(),C=(0,r.useState)(!0),w=(0,a.Z)(C,2),S=w[0],N=w[1],T=(0,r.useState)([]),I=(0,a.Z)(T,2),A=I[0],k=I[1],L=(0,r.useState)(0),B=(0,a.Z)(L,2),W=B[0],P=B[1],M=(0,r.useState)(null),U=(0,a.Z)(M,2),V=U[0],H=U[1];(0,r.useEffect)((function(){o&&N(!0)}),[o]),(0,r.useEffect)((function(){if(S){var e=0;if(null!==n&&null!==l){var t=l.unix()-n.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(s.id,"/?step=").concat(e,"&").concat(null!==n?"&start=".concat(n.unix()):"").concat(null!==n&&null!==l?"&":"").concat(null!==l?"end=".concat(l.unix()):"")).then((function(e){var t=E(e,s);k(t.data),H(t),N(!1);var i,n=0,a=(0,X.Z)(t.data);try{for(a.s();!(i=a.n()).done;){var l=i.value;for(var r in l)if("name"!==r){var o=parseInt(l[r]);isNaN(o)&&(o=0),n5&&void 0!==arguments[5]&&arguments[5];switch(e.type){case n.singleValue:return(0,b.jsx)(ge,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.simpleWidget:var o,s=null;return 80===e.id?s=be:81===e.id?s=ye:1===e.id&&(s=Ze),[80,81,1].includes(e.id)&&(o=function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id,l=e.iconWidget;return(0,b.jsx)(s,{valueToRender:t,loading:i,title:n,id:a,iconWidget:l})}),(0,b.jsx)(de,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,iconWidget:e.widgetIcon,renderFn:o});case n.pieChart:return 50===e.id?(0,b.jsx)(ce,{children:(0,b.jsx)(ve,{value:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l})}):(0,b.jsx)(oe,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.linearGraph:case n.areaGraph:return(0,b.jsx)(ae,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,hideYAxis:e.disableYAxis,xAxisFormatter:e.xAxisFormatter,yAxisFormatter:e.yAxisFormatter,apiPrefix:l,areaWidget:e.type===n.areaGraph,zoomActivated:r});case n.barChart:return(0,b.jsx)(Q,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,zoomActivated:r});case n.singleRep:var d=e.fillColor?e.fillColor:e.color;return(0,b.jsx)(he,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,color:e.color,fillColor:d,apiPrefix:l});default:return null}},we=i(56028),Se=function(e){var t=e.value,i=e.modalOpen,n=e.timeStart,a=e.timeEnd,l=e.apiPrefix,o=(0,$.TL)();return t?(0,b.jsx)(we.Z,{title:t.title,onClose:function(){o((0,H.jv)())},modalOpen:i,wideLimit:!1,noContentPadding:!0,children:(0,b.jsx)(r.Fragment,{children:Ce(t,n,a,!0,l,!0)})}):null},Ee=i(63856),Ne=[{sx:{minWidth:0,display:"grid",gridTemplateColumns:{md:"1fr 1fr 1fr 1fr",sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:66},{componentId:44},{componentId:500},{componentId:501}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:50},{componentId:502}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:80},{componentId:81},{componentId:1}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:68},{componentId:52}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:63},{componentId:70}]}],Te=[{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:60}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:71,sx:{flex:1,width:"50%",flexShrink:0}},{componentId:17,sx:{flex:1,width:"50%",flexShrink:0}}]},{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:73}]}],Fe=[{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:76},{componentId:77}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:82},{componentId:74}]}],Ie=[{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:11},{componentId:8}]}],Ae=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},children:t})},ke=i(57621),Le=i(9585),Be=i(43504),Re=(0,I.Z)({root:{backgroundColor:"#fff",padding:0},title:(0,l.Z)({},h.NP.titleContainer),content:{maxWidth:"100%"}}),We=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{cardRoot:(0,l.Z)((0,l.Z)({},h.NP.singleValueContainer),{},{"&.MuiPaper-root":{borderRadius:10}}),metricText:{fontSize:70,lineHeight:1.1,color:"#07193E",fontWeight:"bold"},unitText:{fontSize:10,color:"#767676",fontWeight:"normal"},subHearderContainer:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center"},subMessage:{fontSize:10,color:"#767676","&.bold":{fontWeight:"bold"}},headerContainer:{display:"flex",justifyContent:"space-between"},viewAll:{fontSize:10,color:"#C83B51",textTransform:"capitalize","& a, & a:hover, & a:visited, & a:active":{color:"#C83B51"}},extraMargin:{margin:"10px 20px 10px 0"}}))}))((function(e){var t=e.title,i=e.metricValue,n=e.metricUnit,a=e.subMessage,l=e.moreLink,o=e.rightComponent,s=e.extraMargin,d=void 0!==s&&s,c=e.classes,x=Re(),u=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.subHearderContainer,children:[(0,b.jsxs)("div",{className:c.leftSide,children:[(0,b.jsx)("div",{children:(0,b.jsxs)("span",{className:c.metricText,children:[i,(0,b.jsx)("span",{className:c.unitText,children:n})]})}),a&&(0,b.jsx)("div",{className:"".concat(c.subMessage," ").concat(a.fontWeight?a.fontWeight:""),children:a.message})]}),(0,b.jsx)("div",{className:c.rightSide,children:o})]})})},p=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.headerContainer,children:[(0,b.jsx)("span",{className:c.title,children:t}),l&&(0,b.jsx)(r.Fragment,{children:(0,b.jsx)("span",{className:c.viewAll,children:(0,b.jsx)(Be.rU,{to:l,children:"View All"})})})]})})};return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(ke.Z,{className:"".concat(c.cardRoot," ").concat(d?c.extraMargin:""),children:""!==i&&(0,b.jsx)(Le.Z,{title:(0,b.jsx)(p,{}),subheader:(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(u,{})}),classes:{root:x.root,title:x.title,content:x.content}})})})})),De=function(e){var t=e.title,i=e.leftComponent,n=e.rightComponent;return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(We,{title:t,metricValue:i,rightComponent:n})})},ze=function(e){var t=e.panelItem,i=e.timeStart,n=e.timeEnd,l=e.propLoading,o=e.apiPrefix,s=e.statLabel,d=(0,$.TL)(),c=(0,r.useState)(!0),x=(0,a.Z)(c,2),u=x[0],p=x[1],h=(0,r.useState)(""),m=(0,a.Z)(h,2),g=m[0],v=m[1];return(0,r.useEffect)((function(){l&&p(!0)}),[l]),(0,r.useEffect)((function(){if(u){var e=0;if(null!==i&&null!==n){var a=n.unix()-i.unix(),l=Math.floor(a/60);e=l<1?15:l}F.Z.invoke("GET","/api/v1/".concat(o,"/info/widgets/").concat(t.id,"/?step=").concat(e,"&").concat(null!==i?"&start=".concat(i.unix()):"").concat(null!==i&&null!==n?"&":"").concat(null!==n?"end=".concat(n.unix()):"")).then((function(e){var i=E(e,t);v(i.data),p(!1)})).catch((function(e){d((0,J.Ih)(e)),p(!1)}))}}),[u,t,n,i,d,o]),u?(0,b.jsx)(f.Z,{sx:{width:"100%",paddingTop:"5px",textAlign:"center",margin:"auto"},children:(0,b.jsx)(K.Z,{style:{width:12,height:12}})}):(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{className:"stat-value",children:g}),s]})},Pe=function(e){var t=e.statItemLeft,i=void 0===t?null:t,n=e.statItemRight,a=void 0===n?null:n,l=e.icon,r=void 0===l?null:l,o=e.label,s=void 0===o?"":o;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:s}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[i,a]})]}),(0,b.jsx)(f.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:r})]})})},Me=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.id,c=(0,a.Z)(s,2),x=c[0],u=c[1],p=(0,b.jsx)(ze,{panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Online"})]})}),h=(0,b.jsx)(ze,{panelItem:u,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#C83B51"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Offline"})]})}),m=null,g="";return 500===d?(m=(0,b.jsx)(j.SBZ,{}),g="Servers"):501===d&&(m=(0,b.jsx)(j.FU8,{}),g="Drives"),(0,b.jsx)(Pe,{statItemLeft:p,statItemRight:h,icon:m,label:g})},Oe=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"10px",gap:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#4ccb92"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969"},children:"GET"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.vUj,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Ge=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"10px",alignItems:"center",marginTop:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#2781b0"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969",fontWeight:"normal"},children:"PUT"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.Uxq,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Ue=function(e){var t=e.value,i=e.timeStart,n=e.timeEnd,l=e.propLoading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=(0,a.Z)(s,2),c=d[0],x=d[1],u=(0,b.jsx)(ge,{title:t.title,panelItem:c,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Ge,{value:t,loading:i,title:n,id:a})}}),p=(0,b.jsx)(ge,{title:t.title,panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Oe,{value:t,loading:i,title:n,id:a})}});return(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"},gap:"15px","& .unitText":{fontSize:"14px",color:"#5E5E5E",marginLeft:"5px"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:"Network"}),(0,b.jsx)(f.Z,{sx:{position:"relative",width:110,height:110,marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{position:"absolute",display:"flex",flexFlow:"column",alignItems:"center",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:p})}),(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center","& .value":{fontSize:"50px",fontFamily:"Lato"},"& .unit":{color:"#5E5E5E",fontSize:"18px",marginLeft:"12px",marginTop:"10px"}},children:u})}),(0,b.jsx)(f.Z,{sx:{marginLeft:"15px",height:"100%",display:"flex",alignItems:"flex-start","& .min-icon":{height:"15px",width:"15px"}},children:(0,b.jsx)(j.QBB,{})})]})},_e=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.title,c=void 0===d?"":d,x=t.id,u=(0,a.Z)(s,2),p=u[0],f=u[1];return[500,501].includes(x)?(0,b.jsx)(ce,{children:(0,b.jsx)(Me,{info:t,timeStart:i,timeEnd:n,loading:l,apiPrefix:r})}):502===x?(0,b.jsx)(ce,{children:(0,b.jsx)(Ue,{apiPrefix:r,timeEnd:n,timeStart:i,value:t,propLoading:l})}):(0,b.jsx)(De,{title:c,leftComponent:Ce(p,i,n,l,r),rightComponent:Ce(f,i,n,l,r)})},Ke=i(74794),Ve=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},h.OR),h.bN),{},{dashboardRow:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap"}}))}))((function(e){var t=e.apiPrefix,i=void 0===t?"admin":t,n=(0,$.TL)(),l=(0,c.v9)((function(e){return e.dashboard.zoom.openZoom})),o=(0,c.v9)((function(e){return e.dashboard.zoom.widgetRender})),s=(0,r.useState)(null),u=(0,a.Z)(s,2),p=u[0],h=u[1],m=(0,r.useState)(null),g=(0,a.Z)(m,2),v=g[0],j=g[1],y=(0,r.useState)(!0),Z=(0,a.Z)(y,2),C=Z[0],S=Z[1],N=(0,r.useState)(w),I=(0,a.Z)(N,2),A=I[0],k=I[1],L=(0,r.useState)(0),R=(0,a.Z)(L,2),W=R[0],D=R[1],z=(0,r.useCallback)((function(){var e=0;if(null!==p&&null!==v){var t=v.unix()-p.unix(),a=Math.floor(t/60);e=a<1?15:a}F.Z.invoke("GET","/api/v1/".concat(i,"/info?step=").concat(e,"&").concat(null!==p?"&start=".concat(p.unix()):"").concat(null!==p&&null!==v?"&":"").concat(null!==v?"end=".concat(v.unix()):"")).then((function(e){if(e.widgets){var t=(i=e.widgets,w.map((function(e){var t=i.find((function(t){return t.title.toLowerCase().trim()===e.title.toLowerCase().trim()}));return E(t,e)})));k(t)}else n((0,J.Ih)({errorMessage:"Widget information could not be retrieved at this time. Please try again",detailedError:""}));var i;S(!1)})).catch((function(e){n((0,J.Ih)(e)),S(!1)}))}),[p,v,n,i]);(0,r.useEffect)((function(){C&&z()}),[C,z]);var P=function(e){return e.reduce((function(e,t,n){var a=t.columns,l=(void 0===a?[]:a).map((function(e,t){var a;return function(e,t){return(0,b.jsx)(r.Fragment,{children:e?(0,b.jsx)(r.Fragment,{children:e.mergedPanels?(0,b.jsx)(_e,{info:e,timeStart:p,timeEnd:v,loading:C,apiPrefix:i}):Ce(e,p,v,C,i)}):null},"widget-".concat(t))}((a=e.componentId,A.find((function(e){return e.id===a}))),"".concat(n,"-").concat(t))})),o=(0,b.jsx)(f.Z,{sx:t.sx,children:l},"layout-row-".concat(n));return[].concat((0,d.Z)(e),[o])}),[])};return(0,b.jsxs)(Ke.Z,{children:[l&&(0,b.jsx)(Se,{modalOpen:l,timeStart:p,timeEnd:v,widgetRender:0,value:o,apiPrefix:i}),(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)(B,{selectedTab:W,onChange:function(e){D(e)},tabOptions:[{label:"Usage"},{label:"Traffic"},{label:"Resources"}]})}),(0,b.jsxs)(x.ZP,{item:!0,xs:12,sx:{paddingTop:"20px"},children:[(0,b.jsx)(f.Z,{sx:{marginBottom:"20px"},children:(0,b.jsx)(Ee.Z,{timeStart:p,setTimeStart:h,timeEnd:v,setTimeEnd:j,triggerSync:function(){S(!0)}})}),(0,b.jsx)(T.x,{index:0,value:W,children:(0,b.jsx)(Ae,{children:A.length?P(Ne):null})}),(0,b.jsx)(T.x,{index:1,value:W,children:(0,b.jsx)(Ae,{children:A.length?P(Te):null})}),(0,b.jsx)(T.x,{index:2,value:W,children:(0,b.jsxs)(Ae,{children:[A.length?P(Fe):null,(0,b.jsx)("h2",{style:{margin:0,borderBottom:"1px solid #dedede"},children:"Advanced"}),A.length?P(Ie):null]})})]})]})})),He=i(32291),$e=i(40986),Ye=i(23804),Je=i(31300),qe=i(98444),Qe=i.n(qe),Xe=i(79834),et=i(90493),tt=i(76278),it=i(56125),nt=i(879),at=function(e){var t=e.label,i=void 0===t?"":t,n=e.value,a=void 0===n?"":n,l=e.statusColor,r=void 0===l?"":l,o=e.hasStatus,s=void 0!==o&&o;return(0,b.jsx)(f.Z,{sx:{alignItems:"baseline",padding:"5px",display:"flex",gap:"5px"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column","& .stat-text":{color:"#5E5E5E",fontSize:"12px"},"& .stat-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsxs)("div",{className:"stat-value",children:[a," ",(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column",marginLeft:"5px",maxWidth:"40px","&:first-of-type(svg)":{fill:"#848484"}},children:s?(0,b.jsx)(f.Z,{sx:{marginRight:"0px",justifyContent:"center",alignItems:"center",textAlign:"center","& svg.min-icon":{fill:r,width:"10px",height:"10px"}},children:(0,b.jsx)(j.J$M,{})}):(0,b.jsx)(f.Z,{sx:{width:"12px",height:"12px"}})})]}),(0,b.jsx)("div",{className:"stat-text",children:i})]})})},lt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.server,i=Object.keys(s()(t,"network",{})),n=i.length,a=t.drives?t.drives.length:0,l=i.reduce((function(e,i){return"online"===t.network[i]?e+1:e}),0),r=t.drives?t.drives.filter((function(e){return"ok"===e.state})).length:0;return(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"flex-start",flexFlow:"column",flex:1},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",padding:"3px",gap:"15px",justifyContent:"space-between",width:"100%",paddingLeft:"20px",flexFlow:{sm:"row",xs:"column"}},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,b.jsx)(f.Z,{sx:{fontWeight:600,textTransform:"none"},children:t.endpoint||""}),(null===t||void 0===t?void 0:t.state)&&(0,b.jsx)(f.Z,{sx:{marginLeft:"8px","& .min-icon":{fill:(0,nt.GJ)(t.state),height:"14px",width:"14px"}},children:(0,b.jsx)(j.J$M,{})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flex:"1.5",gap:{md:"5%",xs:"5%"}},children:[(0,b.jsx)(at,{statusColor:(0,nt.Et)(r,a),label:"Drives",hasStatus:!0,value:"".concat(r,"/").concat(a)}),(0,b.jsx)(at,{statusColor:(0,nt.D_)(l,n),label:"Network",hasStatus:!0,value:"".concat(l,"/").concat(n)}),(0,b.jsx)(at,{statusColor:"green",label:"Up time",value:null!==t&&void 0!==t&&t.uptime?(0,m.v1)(t.uptime):"N/A"})]}),(0,b.jsx)(at,{statusColor:"green",label:"",value:(0,b.jsxs)(f.Z,{sx:{background:"rgb(235, 236, 237)",color:"#000000",paddingLeft:"10px",paddingRight:"10px",borderRadius:"2px",fontSize:"12px",marginTop:"5px","& .label":{fontWeight:600,marginRight:"3px"}},children:[(0,b.jsx)("span",{className:"label",children:"Version:"}),t.version?t.version:"N/A"]})})]})})})),rt=function(e){switch(e){case"offline":return nt.yh.RED;case"ok":return nt.yh.GREEN;default:return nt.yh.YELLOW}},ot=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.drive,i=[{value:t.totalSpace-t.usedSpace,color:"#D6D6D6",label:"Free Space"},{value:t.usedSpace,color:(0,m.hn)(t.usedSpace,t.totalSpace),label:"Used Space"}];return(0,b.jsx)(f.Z,{sx:{display:"flex",flex:1,alignItems:"center",paddingBottom:"10px",padding:"20px",border:"1px solid #eaeaea"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",marginLeft:"10px",flex:1},children:[(0,b.jsxs)(f.Z,{sx:{fontSize:"14px",fontWeight:400,display:"flex",alignItems:"center","& .min-icon":{marginRight:"10px",height:"10px",width:"10px",fill:rt(t.state),flexShrink:0},"& .drive-endpoint":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all",marginRight:"8px",fontWeight:600,fontSize:{md:"16px",xs:"10px"}}},children:[(0,b.jsx)("div",{className:"drive-endpoint",children:t.endpoint||""}),t.state&&(0,b.jsx)(j.J$M,{})]}),(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",paddingLeft:"20px",marginTop:"10px",flexFlow:{sm:"row",xs:"column"},"& .info-label":{color:"#5E5E5E",fontSize:"12px",textAlign:"center"},"& .info-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,b.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:(0,m.l5)(t.usedSpace)}),(0,b.jsx)("div",{children:(0,b.jsx)(le.u,{width:110,height:110,children:(0,b.jsx)(re.b,{data:i,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,startAngle:-70,endAngle:360,animationDuration:1,children:i.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})]})}),(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"5%",alignItems:"center",flex:2,flexGrow:1},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.totalSpace?t.totalSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Capacity"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.usedSpace?t.usedSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Used"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.availableSpace?t.availableSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Available"})]})]})]})]})})})),st=i(25183),dt=function(e){var t=e.data,i=r.useState(t.length>1?"":t[0].endpoint+"-0"),n=(0,a.Z)(i,2),l=n[0],o=n[1],s=function(e){o(e)};return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{marginBottom:"10px"},children:["Servers (",t.length,")"]}),(0,b.jsx)(et.Z,{sx:{width:"100%",flex:1,padding:"0"},component:"nav","aria-labelledby":"nested-list-subheader",children:t.map((function(e,t){var i="".concat(e.endpoint,"-").concat(t),n=l===i;return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsxs)(tt.Z,{disableRipple:!0,onClick:function(){s(n?"":i)},className:n?"expanded":"",sx:{display:"flex",alignItems:"center",justifyContent:"space-between",border:"1px solid #f1f1f1",padding:"3px 10px 3px 10px","&:hover":{background:"#bebbbb0d"}},children:[(0,b.jsx)(lt,{server:e,index:t}),(0,b.jsx)(f.Z,{sx:{height:"25px",width:"25px",background:"#FBFAFA",borderRadius:"2px","&:hover":{background:"#fafafa"},display:{md:"block",xs:"none"},"& .collapse-icon":{fill:"#494949","& g rect":{fill:"#ffffff"}},"& .expand-icon":{fill:"#494949","& rect":{fill:"#ffffff"}}},children:n?(0,b.jsx)(st.cg,{className:"collapse-icon"}):(0,b.jsx)(st.Ud,{className:"expand-icon"})})]}),n?(0,b.jsxs)(f.Z,{sx:{border:"1px solid #f1f1f1",borderTop:"0"},children:[(0,b.jsxs)(Xe.Z,{component:"div",sx:{paddingLeft:"30px"},children:["Drives (",e.drives.length,")"]},"".concat(t,"-drive-details")),(0,b.jsx)(it.Z,{in:n,timeout:"auto",unmountOnExit:!0,sx:{width:"100%",flex:1,display:"flex",padding:{md:"15px 30px",xs:"10px 10px"},"& .MuiCollapse-wrapperInner":{display:"flex",flexFlow:"column",gap:"15px"}},children:e.drives.map((function(e,t){return(0,b.jsx)(ot,{drive:e},"".concat(e.endpoint,"-").concat(t))}))})]},"".concat(e.endpoint,"-").concat(t)):null]},i)}))})]})},ct=function(e){var t=e.counterValue,i=e.label,n=void 0===i?"":i,a=e.icon,l=void 0===a?null:a,r=e.actions,o=void 0===r?null:r;e.loading;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"300px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default",position:"relative",width:"100%"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",width:"100%",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"},position:"absolute"},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"8px",zIndex:10,overflow:"hidden"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:n}),(0,b.jsx)(xe.Z,{title:t,placement:"bottom",enterDelay:500,children:(0,b.jsx)(f.Z,{sx:{fontSize:{xl:"55px",lg:"50px",md:"36px",sm:"35px",xs:"35px"},fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",maxWidth:{md:187,xs:200},flexFlow:{md:"row",xs:"column"}},children:t})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",alignItems:"center",justifyContent:"flex-start",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:[l,(0,b.jsx)(f.Z,{children:o})]})]})})},xt=function(e){var t=e.usageValue,i=e.total,n=e.unit,a=[{value:i,color:"#D6D6D6",label:"Free Space"},{value:t,color:"#073052",label:"Used Space"}];return(0,b.jsxs)(f.Z,{sx:{maxHeight:"110px",display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"19px",padding:"10px","& .unit-value":{fontSize:"50px",color:"#07193E"},"& .unit-type":{fontSize:"18px",color:"#5E5E5E",marginTop:"20px",marginLeft:"5px"},"& .usage-label":{display:"flex",alignItems:"center",fontSize:"16px",fontWeight:600,marginRight:"20px",marginTop:"-10px","& .min-icon":{marginLeft:"10px",height:16,width:16}}},children:[(0,b.jsxs)(f.Z,{children:[(0,b.jsx)("div",{className:"usage-label",children:(0,b.jsx)("span",{children:"Reported Usage"})}),(0,b.jsx)(xe.Z,{title:"".concat(t," Bytes"),children:(0,b.jsx)("label",{className:"unit-value",style:{fontWeight:600},children:i})}),(0,b.jsx)("label",{className:"unit-type",children:n})]}),(0,b.jsx)(f.Z,{children:(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsx)("div",{style:{position:"relative",width:105,height:105,top:"-8px"},children:(0,b.jsx)("div",{children:(0,b.jsx)(le.u,{width:105,height:105,children:(0,b.jsx)(re.b,{data:a,cx:"50%",cy:"50%",dataKey:"value",outerRadius:45,innerRadius:35,startAngle:-70,endAngle:360,animationDuration:1,children:a.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})})})})]})},ut=i(40603),pt=i(56087),ft=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{border:"1px solid #f1f1f1",padding:{md:"15px",xs:"5px"},height:"136px",maxWidth:{sm:"100%"}},children:t})},ht=function(e){var t=e.usage,i=t&&t.usage?t.usage.toString():"0",n=function(e){return void 0===e?{total:"0",unit:"Mi"}:(0,m.Am)(e)}(i),a=t||{},l=a.lastScan,o=void 0===l?"n/a":l,s=a.lastHeal,c=void 0===s?"n/a":s,x=a.upTime,u=void 0===x?"n/a":x,p=function(e){return null!==e?e.servers.sort((function(e,t){var i=e.endpoint.toLowerCase(),n=t.endpoint.toLowerCase();return in?1:0})):[]}(t||null),h=[];p.forEach((function(e){var t=e.drives.map((function(e){return e}));h=[].concat((0,d.Z)(h),(0,d.Z)(t))}));var g=Qe()(p,"state"),v=g.offline,y=void 0===v?[]:v,Z=g.online,C=void 0===Z?[]:Z,w=Qe()(h,"state"),S=w.offline,E=void 0===S?[]:S,N=w.ok,T=void 0===N?[]:N;return(0,b.jsx)(f.Z,{sx:{maxWidth:"1536px",margin:"auto"},children:(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"1fr",gap:"27px",marginBottom:"40px",marginTop:"40px",marginLeft:"40px",marginRight:"40px"},children:[(0,b.jsxs)(f.Z,{children:[(null===t||void 0===t?void 0:t.prometheusNotReady)&&(0,b.jsx)(Ye.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can't retrieve advanced metrics at this time",help:(0,b.jsxs)(r.Fragment,{children:["MinIO Dashboard will display basic metrics as we couldn't connect to Prometheus successfully.",(0,b.jsx)("br",{})," ",(0,b.jsx)("br",{}),"Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."]})}),!(null!==t&&void 0!==t&&t.prometheusNotReady)&&(0,b.jsx)(Ye.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can\u2019t retrieve advanced metrics at this time.",help:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{fontSize:"14px"},children:"MinIO Dashboard will display basic metrics as we couldn\u2019t connect to Prometheus successfully. Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."}),(0,b.jsx)(f.Z,{sx:{paddingTop:"20px",fontSize:"14px","& a":{color:function(e){return e.colors.link}}},children:(0,b.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/metrics-alerts/collect-minio-metrics-using-prometheus.html?ref=con#minio-metrics-collect-using-prometheus",target:"_blank",rel:"noreferrer",children:"Read more about Prometheus on our Docs site."})})]})})]}),(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"40px"},children:[(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"136px",gridTemplateColumns:{sm:"1fr 1fr 1fr",xs:"1fr"},gap:{md:"20px",xs:"20px"}},children:[(0,b.jsx)(ft,{children:(0,b.jsx)(ct,{label:"Buckets",icon:(0,b.jsx)(j.wNb,{}),counterValue:t?(0,m.nk)(t.buckets):0,actions:(0,b.jsx)(Be.rU,{to:pt.gA.BUCKETS,style:{textDecoration:"none",top:"40px",position:"relative",marginRight:"75px"},children:(0,b.jsx)(ut.Z,{tooltip:"Browse",onClick:function(){},text:"Browse",icon:(0,b.jsx)(j.LZ3,{}),color:"primary",variant:"outlined"})})})}),(0,b.jsx)(ft,{children:(0,b.jsx)(ct,{label:"Objects",icon:(0,b.jsx)(j.xpX,{}),counterValue:t?(0,m.nk)(t.objects):0})}),(0,b.jsx)(ft,{children:(0,b.jsx)(Je.Z,{onlineCount:C.length,offlineCount:y.length,label:"Servers",icon:(0,b.jsx)(j.SBZ,{})})}),(0,b.jsx)(ft,{children:(0,b.jsx)(Je.Z,{offlineCount:E.length,onlineCount:T.length,label:"Drives",icon:(0,b.jsx)(j.FU8,{})})}),(0,b.jsxs)(f.Z,{sx:{gridRowStart:"1",gridRowEnd:"3",gridColumnStart:"3",border:"1px solid #f1f1f1",padding:"15px",display:"grid",justifyContent:"stretch"},children:[(0,b.jsx)(xt,{usageValue:i,total:n.total,unit:n.unit}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",gap:"14px"},children:[(0,b.jsx)(je,{icon:(0,b.jsx)(j.lnI,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Heal Activity"]}),value:c}),(0,b.jsx)(je,{icon:(0,b.jsx)(st.EY,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Scan Activity"]}),value:o}),(0,b.jsx)(je,{icon:(0,b.jsx)(j.oNq,{}),label:"Uptime",value:u})]})]})]}),(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateRows:"auto",gridTemplateColumns:"1fr",gap:"auto"},children:(0,b.jsx)(dt,{data:p})})]})]})})},mt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},(0,h.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,i=(0,$.TL)(),n=(0,r.useState)(!0),l=(0,a.Z)(n,2),o=l[0],d=l[1],c=(0,r.useState)(null),u=(0,a.Z)(c,2),p=u[0],f=u[1],h=(0,r.useCallback)((function(){F.Z.invoke("GET","/api/v1/admin/info").then((function(e){f(e),d(!1)})).catch((function(e){i((0,J.Ih)(e)),d(!1)}))}),[f,d,i]);(0,r.useEffect)((function(){o&&h()}),[o,h]);var m=s()(p,"widgets",null);return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)(He.Z,{label:"Metrics"}),o?(0,b.jsx)(x.ZP,{container:!0,children:(0,b.jsx)(x.ZP,{item:!0,xs:12,className:t.container,children:(0,b.jsx)($e.Z,{})})}):(0,b.jsx)(r.Fragment,{children:null!==m?(0,b.jsx)(Ve,{}):(0,b.jsx)(ht,{usage:p})})]})}))},19847:function(e,t,i){i.d(t,{x:function(){return s}});var n=i(1413),a=i(45987),l=i(72791),r=i(80184),o=["children","value","index"],s=function(e){var t=e.children,i=e.value,s=e.index,d=(0,a.Z)(e,o);return(0,r.jsx)("div",(0,n.Z)((0,n.Z)({role:"tabpanel",hidden:i!==s,id:"simple-tabpanel-".concat(s),"aria-labelledby":"simple-tab-".concat(s),style:{marginTop:"5px"}},d),{},{children:i===s&&(0,r.jsx)(l.Fragment,{children:t})}))}}}]);
+//# sourceMappingURL=1182.cd571ded.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1182.cd571ded.chunk.js.map b/portal-ui/build/static/js/1182.cd571ded.chunk.js.map
new file mode 100644
index 000000000..a4d1c0143
--- /dev/null
+++ b/portal-ui/build/static/js/1182.cd571ded.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1182.cd571ded.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx","screens/Console/Common/FormComponents/DateTimePickerWrapper/DateTimePickerWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Dashboard/BasicDashboard/StatusCountCard.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Dashboard/Prometheus/types.ts","screens/Console/Dashboard/Prometheus/utils.tsx","screens/Console/Common/TabSelector/TabSelector.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/BarChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/ExpandGraphLink.tsx","screens/Console/Dashboard/Prometheus/Widgets/BarChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/LineChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/LinearGraphWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/PieChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SimpleWidget.tsx","screens/Console/Dashboard/DashboardItemBox.tsx","screens/Console/Dashboard/Prometheus/Widgets/NumericStatCard.tsx","screens/Console/Dashboard/Prometheus/Widgets/BucketsCountItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/ObjectsCountItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleRepWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleValueWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/CapacityItem.tsx","screens/Console/Dashboard/TimeStatItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/HealActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/ScanActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/UptimeActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/widgetUtils.tsx","screens/Console/Dashboard/Prometheus/ZoomWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/LayoutUtil.tsx","screens/Console/Dashboard/CommonCard.tsx","screens/Console/Dashboard/Prometheus/MergedWidgets.tsx","screens/Console/Dashboard/Prometheus/Widgets/EntityStateStatItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/DualStatCard.tsx","screens/Console/Dashboard/Prometheus/Widgets/EntityStateItemRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkGetItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkPutItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/MergedWidgetsRenderer.tsx","screens/Console/Dashboard/Prometheus/PrDashboard.tsx","screens/Console/Dashboard/BasicDashboard/ServerInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/DriveInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/ServersList.tsx","screens/Console/Dashboard/BasicDashboard/CounterCard.tsx","screens/Console/Dashboard/BasicDashboard/ReportedUsage.tsx","screens/Console/Dashboard/BasicDashboard/BasicDashboard.tsx","screens/Console/Dashboard/Dashboard.tsx","screens/shared/tabs.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Button, Grid } from \"@mui/material\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport WatchLaterIcon from \"@mui/icons-material/WatchLater\";\nimport { actionsTray, widgetContainerCommon } from \"../common/styleLibrary\";\nimport DateTimePickerWrapper from \"../DateTimePickerWrapper/DateTimePickerWrapper\";\nimport SyncIcon from \"../../../../../icons/SyncIcon\";\nimport { OpenListIcon } from \"../../../../../icons\";\n\ninterface IDateRangeSelector {\n classes: any;\n timeStart: any;\n setTimeStart: (date: any) => void;\n timeEnd: any;\n setTimeEnd: (date: any) => void;\n triggerSync?: () => void;\n label?: string;\n startLabel?: string;\n endLabel?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n syncButton: {\n \"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type\": {\n fontSize: 18,\n },\n },\n schedulerIcon: {\n opacity: 0.4,\n fontSize: 10,\n \"& svg\": {\n width: 18,\n height: 18,\n },\n },\n selectorLabel: {\n color: \"#9D9E9D\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n marginLeft: 10,\n fontSize: 12,\n },\n });\n\nconst DateFilterAdornIcon = () => {\n return (\n \n \n \n );\n};\n\nconst DateRangeSelector = ({\n classes,\n timeStart,\n setTimeStart,\n timeEnd,\n setTimeEnd,\n triggerSync,\n label = \"Filter:\",\n startLabel = \"Start Time:\",\n endLabel = \"End Time:\",\n}: IDateRangeSelector) => {\n return (\n \n \n \n {label}\n \n \n \n \n \n \n \n {startLabel}\n \n \n \n \n \n\n \n \n \n \n \n {endLabel}\n \n \n \n \n \n \n\n {triggerSync && (\n \n }\n className={classes.syncButton}\n >\n Sync\n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(DateRangeSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\nimport DateTimePicker from \"@mui/lab/DateTimePicker\";\nimport AdapterMoment from \"@mui/lab/AdapterMoment\";\nimport LocalizationProvider from \"@mui/lab/LocalizationProvider\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport OpenListIcon from \"../../../../../icons/OpenListIcon\";\n\ninterface IDateTimePicker {\n value: any;\n onChange: (value: any) => any;\n classes: any;\n forSearchBlock?: boolean;\n forFilterContained?: boolean;\n label?: string;\n required?: boolean;\n tooltip?: string;\n id: string;\n disabled?: boolean;\n noInputIcon?: boolean;\n classNamePrefix?: string;\n openPickerIcon?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelectorOverride: {\n height: 40,\n border: \"#EAEDEE 1px solid\",\n marginLeft: 15,\n backgroundColor: \"#fff\",\n padding: \"0 16px\",\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n borderColor: \"#000\",\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: 600,\n color: \"#393939\",\n },\n },\n dateSelectorFilterOverride: {\n width: 180,\n height: 42,\n marginLeft: 20,\n padding: 0,\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: \"bold\",\n color: \"#081C42\",\n },\n \"@media (max-width: 900px)\": {\n width: 103,\n },\n },\n dateSelectorFormOverride: {\n width: \"100%\",\n maxWidth: 840,\n },\n parentDateOverride: {\n flexGrow: 1,\n },\n textBoxContainer: {\n flexGrow: 1,\n },\n openListIcon: {\n color: \"#9D9E9D\",\n width: 8,\n marginTop: 2,\n },\n paperOverride: {\n \"& .MuiCalendarPicker-root\": {\n padding: \"0 22px\",\n \"& > div\": {\n padding: 0,\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type\":\n {\n color: \"#0A224C\",\n fontWeight: \"bold\",\n },\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type\": {\n color: \"#9D9E9D\",\n \"& + button.MuiButtonBase-root\": {\n color: \"#9D9E9D\",\n },\n },\n \"& > div:nth-child(2)\": {\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n },\n },\n },\n \"& .MuiTypography-root.MuiTypography-caption\": {\n width: 26,\n height: 26,\n margin: 5,\n color: \"#BCBCBC\",\n fontSize: 10,\n },\n \"& button.MuiPickersDay-root\": {\n fontWeight: \"bold\",\n width: 26,\n height: 26,\n margin: 5,\n textAlign: \"center\",\n \"&.Mui-selected\": {\n backgroundColor: theme.palette.primary.main,\n color: \"#fff\",\n },\n },\n \"& div.MuiPickersDay-hiddenDaySpacingFiller\": {\n width: 26,\n height: 26,\n margin: 5,\n },\n \"& div.PrivatePickersSlideTransition-root\": {\n minHeight: 240,\n },\n \"& div.MuiCalendarPicker-viewTransitionContainer\": {\n borderTop: \"#F0F3F5 1px solid\",\n },\n \"& .MuiClockPicker-arrowSwitcher\": {\n marginRight: 10,\n marginTop: -1,\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n \"& + div > div\": {\n width: 255,\n height: 255,\n backgroundColor: \"#fff\",\n marginTop: 30,\n marginBottom: 14,\n border: \"#F0F3F5 3px solid\",\n \"& > div:nth-child(2)\": {\n backgroundColor: \"#B4B5B4\",\n width: 12,\n height: 12,\n \"&::before\": {\n content: \"' '\",\n width: 35,\n height: 35,\n display: \"block\",\n position: \"absolute\",\n border: \"#F0F3F5 3px solid\",\n top: -12,\n left: -12,\n borderRadius: \"100%\",\n },\n },\n \"& > div:nth-child(3)\": {\n backgroundColor: \"#B4B5B4\",\n width: 4,\n },\n \"& > div:last-of-type\": {\n marginTop: 15,\n \"& > span\": {\n color: \"#0A224C\",\n \"&.Mui-selected\": {\n color: \"#fff\",\n },\n \"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']\":\n {\n fontWeight: \"bold\",\n fontSize: 20,\n marginTop: -1,\n },\n },\n },\n },\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n });\n\nconst DateTimePickerWrapper = ({\n value,\n onChange,\n classes,\n forSearchBlock = false,\n forFilterContained = false,\n label,\n tooltip = \"\",\n required,\n id,\n disabled = false,\n noInputIcon = false,\n classNamePrefix = \"\",\n openPickerIcon,\n}: IDateTimePicker) => {\n let adornment = {};\n\n if (!noInputIcon) {\n adornment = {\n startAdornment: (\n \n \n \n ),\n };\n }\n\n if (forFilterContained) {\n adornment = {\n endAdornment: (\n \n \n \n ),\n };\n }\n\n const classOverridden = `${classNamePrefix}date-time-input ${\n forSearchBlock ? classes.dateSelectorOverride : \"\"\n } ${\n forFilterContained && !forSearchBlock\n ? classes.dateSelectorFilterOverride\n : \"\"\n }`;\n\n const clsName = forSearchBlock\n ? classes.parentDateOverride\n : classes.dateSelectorFormOverride;\n\n const inputItem = (\n \n (\n \n )}\n ampm={false}\n PopperProps={{\n className: classes.paperOverride,\n }}\n />\n \n );\n\n if (forSearchBlock) {\n return inputItem;\n }\n\n const containerCls = !forFilterContained ? classes.fieldContainer : \"\";\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n \n )}\n \n )}\n\n \n {inputItem}\n
\n \n \n );\n};\n\nexport default withStyles(styles)(DateTimePickerWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n \n {titleIcon} {title}\n
\n \n \n \n \n
\n \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\n\nexport const StatusCountCard = ({\n onlineCount = 0,\n offlineCount = 0,\n icon = null,\n label = \"\",\n okStatusText = \"Online\",\n notOkStatusText = \"Offline\",\n}: {\n icon: any;\n onlineCount: number;\n offlineCount: number;\n label: string;\n okStatusText?: string;\n notOkStatusText?: string;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n {onlineCount} \n \n \n {okStatusText}
\n \n \n\n \n {offlineCount} \n \n {\" \"}\n {notOkStatusText}
\n \n \n \n \n \n {icon}\n \n \n \n );\n};\n\nexport default StatusCountCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#E7A219\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number\n) => {\n if (activeDisks <= totalDrives / 2) {\n return STATUS_COLORS.RED;\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeDisks === totalDrives) {\n return STATUS_COLORS.GREEN;\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"online\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return STATUS_COLORS.RED;\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeNetwork === networkTotal) {\n return STATUS_COLORS.GREEN;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n IBarChartConfiguration,\n IBarChartRelation,\n IDataSRep,\n ILinearGraphConfiguration,\n IPieChartConfiguration,\n} from \"./Widgets/types\";\n\nexport enum widgetType {\n singleValue = \"singleValue\",\n linearGraph = \"linearGraph\",\n areaGraph = \"areaGraph\",\n barChart = \"barChart\",\n pieChart = \"pieChart\",\n singleRep = \"singleRep\",\n simpleWidget = \"simpleWidget\",\n}\n\nexport interface IDashboardPanel {\n id: number;\n mergedPanels?: IDashboardPanel[];\n title: string;\n data?: string | object[] | IDataSRep[];\n dataOuter?: string | object[];\n type?: widgetType;\n widgetIcon?: any;\n widgetConfiguration?:\n | ILinearGraphConfiguration[]\n | IBarChartConfiguration[]\n | IPieChartConfiguration;\n color?: string;\n fillColor?: string;\n innerLabel?: string;\n labelDisplayFunction?: (value: string) => any;\n disableYAxis?: boolean;\n xAxisFormatter?: (item: string) => string;\n yAxisFormatter?: (item: string) => string;\n customStructure?: IBarChartRelation[];\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport {\n getTimeFromTimestamp,\n niceBytes,\n niceDays,\n representationNumber,\n textToRGBColor,\n units,\n} from \"../../../../common/utils\";\nimport HealIcon from \"../../../../icons/HealIcon\";\nimport DiagnosticsIcon from \"../../../../icons/DiagnosticsIcon\";\nimport { UptimeIcon } from \"../../../../icons\";\n\nconst colorsMain = [\n \"#C4D4E9\",\n \"#DCD1EE\",\n \"#D1EEE7\",\n \"#EEDED1\",\n \"#AAF38F\",\n \"#F9E6C5\",\n \"#C83B51\",\n \"#F4CECE\",\n \"#D6D6D6\",\n];\n\nconst niceDaysFromNS = (seconds: string) => {\n return niceDays(seconds, \"ns\");\n};\n\nconst roundNumber = (value: string) => {\n return parseInt(value).toString(10);\n};\n\nexport const panelsConfiguration: IDashboardPanel[] = [\n {\n id: 1,\n title: \"Uptime\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDays,\n },\n {\n id: 50,\n title: \"Capacity\",\n data: [],\n dataOuter: [{ name: \"outer\", value: 100 }],\n widgetConfiguration: {\n outerChart: {\n colorList: [\"#9c9c9c\"],\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n },\n innerChart: {\n colorList: colorsMain,\n innerRadius: 20,\n outerRadius: 50,\n startAngle: 90,\n endAngle: -200,\n },\n },\n type: widgetType.pieChart,\n innerLabel: \"N/A\",\n labelDisplayFunction: niceBytes,\n },\n {\n id: 51,\n title: \"Usable Capacity\",\n data: [],\n dataOuter: [{ name: \"outer\", value: 100 }],\n widgetConfiguration: {\n outerChart: {\n colorList: [\"#9c9c9c\"],\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n },\n innerChart: {\n colorList: colorsMain,\n innerRadius: 20,\n outerRadius: 50,\n startAngle: 90,\n endAngle: -200,\n },\n },\n type: widgetType.pieChart,\n innerLabel: \"N/A\",\n labelDisplayFunction: niceBytes,\n },\n {\n id: 68,\n title: \"Data Usage Growth\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.areaGraph,\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 52,\n title: \"Object size distribution\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"a\",\n color: \"#2781B0\",\n background: {\n fill: \"#EEF1F4\",\n },\n greatestColor: \"#081C42\",\n },\n ],\n customStructure: [\n { originTag: \"LESS_THAN_1024_B\", displayTag: \"Less than 1024B\" },\n {\n originTag: \"BETWEEN_1024_B_AND_1_MB\",\n displayTag: \"Between 1024B and 1MB\",\n },\n {\n originTag: \"BETWEEN_1_MB_AND_10_MB\",\n displayTag: \"Between 1MB and 10MB\",\n },\n {\n originTag: \"BETWEEN_10_MB_AND_64_MB\",\n displayTag: \"Between 10MB and 64MB\",\n },\n {\n originTag: \"BETWEEN_64_MB_AND_128_MB\",\n displayTag: \"Between 64MB and 128MB\",\n },\n {\n originTag: \"BETWEEN_128_MB_AND_512_MB\",\n displayTag: \"Between 128MB and 512MB\",\n },\n {\n originTag: \"GREATER_THAN_512_MB\",\n displayTag: \"Greater than 512MB\",\n },\n ],\n type: widgetType.barChart,\n },\n {\n id: 66,\n title: \"Buckets\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 44,\n title: \"Objects\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 63,\n title: \"API Data Received Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n strokeWidth: 3,\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 61,\n title: \"Total Open FDs\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#22B573\",\n fillColor: \"#A6E8C4\",\n },\n {\n id: 62,\n title: \"Total Goroutines\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#F7655E\",\n fillColor: \"#F4CECE\",\n },\n {\n id: 77,\n title: \"Node CPU Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 60,\n title: \"API Request Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 70,\n title: \"API Data Sent Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 17,\n title: \"Internode Data Transfer\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 73,\n title: \"Node IO\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 80,\n title: \"Time Since Last Heal Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 81,\n title: \"Time Since Last Scan Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 71,\n title: \"API Request Error Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 76,\n title: \"Node Memory Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 74,\n title: \"Drive Used Capacity\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 82,\n title: \"Drives Free Inodes\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n disableYAxis: true,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 11,\n title: \"Node Syscalls\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 8,\n title: \"Node File Descriptors\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 500,\n mergedPanels: [\n {\n id: 53,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 69,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Servers\",\n },\n {\n id: 501,\n mergedPanels: [\n {\n id: 9,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 78,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Drives\",\n },\n {\n id: 502,\n mergedPanels: [\n {\n id: 65,\n title: \"Upload\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n {\n id: 64,\n title: \"Download\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n ],\n title: \"Network\",\n },\n];\n\nconst calculateMainValue = (elements: any[], metricCalc: string) => {\n if (elements.length === 0) {\n return [\"\", \"0\"];\n }\n\n switch (metricCalc) {\n case \"mean\":\n const sumValues = elements.reduce((accumulator, currValue) => {\n return accumulator + parseFloat(currValue[1]);\n }, 0);\n\n const mean = Math.floor(sumValues / elements.length);\n\n return [\"\", mean.toString()];\n default:\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n return sortResult[sortResult.length - 1];\n }\n};\n\nconst constructLabelNames = (metrics: any, legendFormat: string) => {\n const keysToReplace = Object.keys(metrics);\n const expToReplace = new RegExp(`{{(${keysToReplace.join(\"|\")})}}`, \"g\");\n\n let replacedLegend = legendFormat.replace(expToReplace, (matchItem) => {\n const nwMatchItem = matchItem.replace(/({{|}})/g, \"\");\n return metrics[nwMatchItem];\n });\n\n const countVarsOpen = (replacedLegend.match(/{{/g) || []).length;\n const countVarsClose = (replacedLegend.match(/}}/g) || []).length;\n\n let cleanLegend = replacedLegend.replace(/{{(.*?)}}/g, \"\");\n\n if (\n countVarsOpen === countVarsClose &&\n countVarsOpen !== 0 &&\n countVarsClose !== 0\n ) {\n keysToReplace.forEach((element) => {\n replacedLegend = replacedLegend.replace(element, metrics[element]);\n });\n\n cleanLegend = replacedLegend;\n }\n\n // In case not all the legends were replaced, we remove the placeholders.\n return cleanLegend;\n};\n\nexport const getWidgetsWithValue = (payload: any[]): IDashboardPanel[] => {\n return panelsConfiguration.map((panelItem: IDashboardPanel) => {\n const payloadData = payload.find(\n (panelT) =>\n panelT.title.toLowerCase().trim() ===\n panelItem.title.toLowerCase().trim()\n );\n return widgetDetailsToPanel(payloadData, panelItem);\n });\n};\n\nexport const widgetDetailsToPanel = (\n payloadData: any,\n panelItem: IDashboardPanel\n) => {\n if (!payloadData) {\n return panelItem;\n }\n\n const typeOfPayload = payloadData.type;\n\n switch (panelItem.type) {\n case widgetType.singleValue:\n case widgetType.simpleWidget:\n if (typeOfPayload === \"stat\" || typeOfPayload === \"singlestat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n\n if (elements === null) {\n elements = [];\n }\n\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const data = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data,\n };\n }\n break;\n case widgetType.pieChart:\n if (typeOfPayload === \"gauge\") {\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n let chartSeries = get(payloadData, \"targets\", []).filter(\n (seriesItem: any) => seriesItem !== null\n );\n\n const values = chartSeries.map((chartTarget: any) => {\n const resultMap =\n chartTarget.result && Array.isArray(chartTarget.result)\n ? chartTarget.result\n : [];\n\n const values = resultMap.map((elementValue: any) => {\n const values = get(elementValue, \"values\", []);\n const metricKeyItem = Object.keys(elementValue.metric);\n const sortResult = values.sort(\n (value1: any[], value2: any[]) =>\n parseInt(value1[0][1]) - parseInt(value2[0][1])\n );\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n const value = sortResult[sortResult.length - 1];\n return {\n name: metricName,\n value: parseInt(value[1]),\n legend: chartTarget.legendFormat,\n };\n });\n\n return values;\n });\n\n const firstTarget =\n chartSeries[0].result && chartSeries[0].result.length > 0\n ? chartSeries[0].result[0].values\n : [];\n\n const totalValues = calculateMainValue(firstTarget, metricCalc);\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(totalValues[1])\n : totalValues[1];\n\n return {\n ...panelItem,\n data: values,\n innerLabel,\n };\n }\n break;\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n if (typeOfPayload === \"graph\") {\n let targets = get(payloadData, \"targets\", []);\n if (targets === null) {\n targets = [];\n }\n\n const series: any[] = [];\n const plotValues: any[] = [];\n\n targets.forEach(\n (\n targetMaster: { legendFormat: string; result: any[] },\n index: number\n ) => {\n // Add a new serie to plot variables in case it is not from multiple values\n let results = get(targetMaster, \"result\", []);\n const legendFormat = targetMaster.legendFormat;\n if (results === null) {\n results = [];\n }\n\n results.forEach((itemVals: { metric: object; values: any[] }) => {\n // Label Creation\n const labelName = constructLabelNames(\n itemVals.metric,\n legendFormat\n );\n const keyName = `key_${index}${labelName}`;\n\n // series creation with recently created label\n series.push({\n dataKey: keyName,\n keyLabel: labelName,\n lineColor: \"\",\n fillColor: \"\",\n });\n\n // we iterate over values and create elements\n let values = get(itemVals, \"values\", []);\n if (values === null) {\n values = [];\n }\n\n values.forEach((valInfo: any[]) => {\n const itemIndex = plotValues.findIndex(\n (element) => element.name === valInfo[0]\n );\n\n // Element not exists yet\n if (itemIndex === -1) {\n let itemToPush: any = { name: valInfo[0] };\n itemToPush[keyName] = valInfo[1];\n\n plotValues.push(itemToPush);\n } else {\n plotValues[itemIndex][keyName] = valInfo[1];\n }\n });\n });\n }\n );\n\n const sortedSeries = series.sort((series1: any, series2: any) => {\n if (series1.keyLabel < series2.keyLabel) {\n return -1;\n }\n if (series1.keyLabel > series2.keyLabel) {\n return 1;\n }\n return 0;\n });\n\n const seriesWithColors = sortedSeries.map(\n (serialC: any, index: number) => {\n return {\n ...serialC,\n lineColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n fillColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n };\n }\n );\n\n const sortedVals = plotValues.sort(\n (value1: any, value2: any) => value1.name - value2.name\n );\n\n return {\n ...panelItem,\n widgetConfiguration: seriesWithColors,\n data: sortedVals,\n };\n }\n break;\n case widgetType.barChart:\n if (typeOfPayload === \"bargauge\") {\n let chartBars = get(payloadData, \"targets[0].result\", []);\n\n if (chartBars === null) {\n chartBars = [];\n }\n\n const sortFunction = (value1: any[], value2: any[]) =>\n value1[0] - value2[0];\n\n let values = [];\n if (panelItem.customStructure) {\n values = panelItem.customStructure.map((structureItem) => {\n const metricTake = chartBars.find((element: any) => {\n const metricKeyItem = Object.keys(element.metric);\n\n const metricName = element.metric[metricKeyItem[0]];\n\n return metricName === structureItem.originTag;\n });\n\n const elements = get(metricTake, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n\n return {\n name: structureItem.displayTag,\n a: parseInt(lastValue[1]),\n };\n });\n } else {\n // If no configuration is set, we construct the series for bar chart and return the element\n values = chartBars.map((elementValue: any) => {\n const metricKeyItem = Object.keys(elementValue.metric);\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n\n const elements = get(elementValue, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n return { name: metricName, a: parseInt(lastValue[1]) };\n });\n }\n\n return {\n ...panelItem,\n data: values,\n };\n }\n break;\n case widgetType.singleRep:\n if (typeOfPayload === \"stat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n if (elements === null) {\n elements = [];\n }\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n let valuesForBackground = [];\n\n if (sortResult.length === 1) {\n valuesForBackground.push({ value: 0 });\n }\n\n sortResult.forEach((eachVal: any) => {\n valuesForBackground.push({ value: parseInt(eachVal[1]) });\n });\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data: valuesForBackground,\n innerLabel,\n };\n }\n break;\n }\n\n return panelItem;\n};\n\nconst verifyNumeric = (item: string) => {\n return !isNaN(parseFloat(item));\n};\n\nexport const splitSizeMetric = (val: string) => {\n const splittedText = val.split(\" \");\n // Value is not a size metric, we return as common string\n\n const singleValue = () => {\n let vl = val;\n\n if (verifyNumeric(val)) {\n vl = representationNumber(parseFloat(val));\n }\n return {vl} ;\n };\n\n if (splittedText.length !== 2) {\n return singleValue();\n }\n\n if (!units.includes(splittedText[1])) {\n return singleValue();\n }\n\n return (\n \n {splittedText[0]}\n {splittedText[1]} \n \n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { ITabOption } from \"./types\";\n\ninterface ITabSelector {\n selectedTab: number;\n onChange: (newValue: number) => void;\n tabOptions: ITabOption[];\n}\n\nconst tabSubStyles = makeStyles({\n tabRoot: {\n height: \"40px\",\n borderBottom: \"1px solid #eaeaea\",\n },\n root: {\n width: \"120px\",\n backgroundColor: \"transparent\",\n paddingTop: 0,\n paddingBottom: 0,\n fontSize: \"14px\",\n fontWeight: 600,\n color: \"#07193E\",\n height: \"40px\",\n },\n selected: {\n \"&.MuiTab-selected\": {\n backgroundColor: \"#F6F7F7 !important\",\n },\n \"&.MuiTab-wrapper\": {\n color: \"#07193E\",\n fontWeight: 600,\n },\n },\n indicator: {\n background:\n \"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;\",\n height: 2,\n },\n scroller: {\n maxWidth: 1185,\n position: \"relative\",\n \"&::after\": {\n content: '\" \"',\n backgroundColor: \"#EEF1F4\",\n height: 2,\n width: \"100%\",\n display: \"block\",\n },\n },\n});\n\nconst TabSelector = ({ selectedTab, onChange, tabOptions }: ITabSelector) => {\n const subStyles = tabSubStyles();\n\n return (\n \n , newValue: number) => {\n onChange(newValue);\n }}\n classes={{\n root: subStyles.tabRoot,\n indicator: subStyles.indicator,\n scroller: subStyles.scroller,\n }}\n >\n {tabOptions.map((option, index) => {\n let tabOptions: ITabOption = {\n label: option.label,\n };\n\n if (option.value) {\n tabOptions = { ...tabOptions, value: option.value };\n }\n\n if (option.disabled) {\n tabOptions = { ...tabOptions, disabled: option.disabled };\n }\n\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default TabSelector;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst BarChartTooltip = ({\n active,\n payload,\n label,\n barChartConfiguration,\n classes,\n}: any) => {\n if (active) {\n return (\n \n
{label}
\n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n
\n );\n })}\n
\n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(BarChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ZoomOutMapIcon from \"@mui/icons-material/ZoomOutMap\";\nimport { Box } from \"@mui/material\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { openZoomPage } from \"../../dashboardSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\nconst ExpandGraphLink = ({ panelItem }: { panelItem: IDashboardPanel }) => {\n const dispatch = useAppDispatch();\n return (\n \n {\n e.preventDefault();\n dispatch(openZoomPage(panelItem));\n }}\n >\n Expand Graph\n \n {\n dispatch(openZoomPage(panelItem));\n }}\n className={\"zoom-graph-icon\"}\n >\n \n \n \n );\n};\n\nexport default ExpandGraphLink;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\n\nimport {\n Bar,\n BarChart,\n Cell,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IBarChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport BarChartTooltip from \"./tooltips/BarChartTooltip\";\n\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport ExpandGraphLink from \"./ExpandGraphLink\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface IBarChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n zoomActivated?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n });\n\nconst CustomizedAxisTick = ({ y, payload }: any) => {\n return (\n \n {payload.value}\n \n );\n};\n\nconst BarChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n zoomActivated = false,\n}: IBarChartWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const barChartConfiguration = result\n ? (result.widgetConfiguration as IBarChartConfiguration[])\n : [];\n\n let greatestIndex = 0;\n let currentValue = 0;\n\n if (barChartConfiguration.length === 1) {\n const dataGraph = barChartConfiguration[0];\n data.forEach((item: any, index: number) => {\n if (item[dataGraph.dataKey] > currentValue) {\n currentValue = item[dataGraph.dataKey];\n greatestIndex = index;\n }\n });\n }\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n \n {!zoomActivated && (\n
\n {title} \n
\n )}\n {loading && (\n
\n \n
\n )}\n {!loading && (\n
\n \n \n \n }\n tickLine={false}\n axisLine={false}\n width={150}\n hide={!biggerThanMd}\n style={{\n fontSize: \"12px\",\n fontWeight: 100,\n }}\n />\n {barChartConfiguration.map((bar) => (\n \n {barChartConfiguration.length === 1 ? (\n \n {data.map((_: any, index: number) => (\n | \n ))}\n \n ) : null}\n \n ))}\n \n }\n />\n \n \n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(BarChartWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { getTimeFromTimestamp } from \"../../../../../../common/utils\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst LineChartTooltip = ({\n active,\n payload,\n label,\n linearConfiguration,\n yAxisFormatter,\n classes,\n}: any) => {\n if (active) {\n return (\n \n
\n {getTimeFromTimestamp(label, true)}\n
\n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n
\n
\n
\n \n {linearConfiguration[index].keyLabel}:{\" \"}\n {yAxisFormatter(pl.value)}\n \n
\n
\n );\n })}\n
\n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(LineChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\n\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { Box, useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ILinearGraphConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport LineChartTooltip from \"./tooltips/LineChartTooltip\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport ExpandGraphLink from \"./ExpandGraphLink\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ILinearGraphWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n hideYAxis?: boolean;\n yAxisFormatter?: (item: string) => string;\n xAxisFormatter?: (item: string) => string;\n areaWidget?: boolean;\n zoomActivated?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n verticalAlignment: {\n flexDirection: \"column\",\n },\n chartCont: {\n position: \"relative\",\n height: 140,\n width: \"100%\",\n },\n legendChart: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"0 1 auto\",\n maxHeight: 130,\n margin: 0,\n overflowY: \"auto\",\n position: \"relative\",\n textAlign: \"center\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n color: \"#404143\",\n fontWeight: \"bold\",\n fontSize: 12,\n },\n loadingAlign: {\n width: 40,\n height: 40,\n textAlign: \"center\",\n margin: \"15px auto\",\n },\n });\n\nconst LinearGraphWidget = ({\n classes,\n title,\n\n timeStart,\n timeEnd,\n propLoading,\n panelItem,\n apiPrefix,\n hideYAxis = false,\n areaWidget = false,\n yAxisFormatter = (item: string) => item,\n xAxisFormatter = (item: string) => item,\n zoomActivated = false,\n}: ILinearGraphWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [dataMax, setDataMax] = useState(0);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n let maxVal = 0;\n for (const dp of widgetsWithValue.data) {\n for (const key in dp) {\n if (key === \"name\") {\n continue;\n }\n let val = parseInt(dp[key]);\n\n if (isNaN(val)) {\n val = 0;\n }\n\n if (maxVal < val) {\n maxVal = val;\n }\n }\n }\n setDataMax(maxVal);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let intervalCount = Math.floor(data.length / 5);\n\n const linearConfiguration = result\n ? (result?.widgetConfiguration as ILinearGraphConfiguration[])\n : [];\n\n const CustomizedDot = (prop: any) => {\n const { cx, cy, index } = prop;\n\n if (index % 3 !== 0) {\n return null;\n }\n return ;\n };\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n \n {!zoomActivated && (\n \n {title} \n
\n )}\n \n {loading && }\n {!loading && (\n \n \n
\n \n {areaWidget && (\n \n \n \n \n\n \n \n \n )}\n \n xAxisFormatter(value)}\n interval={intervalCount}\n tick={{\n fontSize: \"68%\",\n fontWeight: \"normal\",\n color: \"#404143\",\n }}\n tickCount={10}\n stroke={\"#082045\"}\n />\n yAxisFormatter(value)}\n tick={{\n fontSize: \"68%\",\n fontWeight: \"normal\",\n color: \"#404143\",\n }}\n stroke={\"#082045\"}\n />\n {linearConfiguration.map((section, index) => {\n return (\n : false}\n />\n );\n })}\n \n }\n wrapperStyle={{\n zIndex: 5000,\n }}\n />\n \n \n
\n {!areaWidget && (\n \n {zoomActivated && (\n \n Series \n \n \n \n )}\n {biggerThanMd && (\n \n {linearConfiguration.map((section, index) => {\n return (\n
\n
\n
\n {section.keyLabel}\n
\n
\n );\n })}\n
\n )}\n \n )}\n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(LinearGraphWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Cell, Pie, PieChart, ResponsiveContainer } from \"recharts\";\nimport { IPieChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IDashboardPanel } from \"../types\";\nimport { splitSizeMetric, widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport get from \"lodash/get\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface IPieChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n pieChartLabel: {\n fontSize: 60,\n color: \"#07193E\",\n fontWeight: \"bold\",\n width: \"100%\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n chartContainer: {\n width: \"100%\",\n height: 140,\n },\n });\n\nconst PieChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n\n apiPrefix,\n}: IPieChartWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [dataInner, setDataInner] = useState([]);\n const [dataOuter, setDataOuter] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setDataInner(widgetsWithValue.data);\n setDataOuter(widgetsWithValue.dataOuter as object[]);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const pieChartConfiguration = result\n ? (result.widgetConfiguration as IPieChartConfiguration)\n : [];\n const middleLabel = result?.innerLabel;\n\n const innerColors = get(pieChartConfiguration, \"innerChart.colorList\", []);\n const outerColors = get(pieChartConfiguration, \"outerChart.colorList\", []);\n\n return (\n \n
{title}
\n {loading && (\n
\n \n
\n )}\n {!loading && (\n
\n
\n {middleLabel && splitSizeMetric(middleLabel)}\n \n
\n
\n \n {dataOuter && (\n \n {dataOuter.map((entry, index) => (\n | \n ))}\n \n )}\n {dataInner && (\n \n {dataInner.map((entry, index) => {\n return (\n | \n );\n })}\n \n )}\n \n \n
\n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(PieChartWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ISimpleWidget {\n classes: any;\n iconWidget: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n renderFn?: undefined | null | ((arg: Record) => any);\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n mainWidgetContainer: {\n display: \"inline-flex\",\n color: \"#072A4D\",\n alignItems: \"center\",\n },\n icon: {\n color: \"#072A4D\",\n fill: \"#072A4D\",\n marginRight: 5,\n marginLeft: 12,\n },\n widgetLabel: {\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n marginRight: 10,\n },\n widgetValue: {\n marginRight: 25,\n },\n });\n\nconst SimpleWidget = ({\n classes,\n iconWidget,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n renderFn,\n}: ISimpleWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n if (renderFn) {\n return renderFn({\n valueToRender: data,\n loading,\n title,\n id: panelItem.id,\n iconWidget: iconWidget,\n });\n }\n return (\n \n {loading && (\n \n \n
\n )}\n {!loading && (\n \n {iconWidget ? iconWidget : null} \n {title}: \n {data} \n \n )}\n \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SimpleWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\nconst DashboardItemBox = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default DashboardItemBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Tooltip } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\nconst NumericStatCard = ({\n value,\n label = \"\",\n icon = null,\n loading = false,\n}: {\n value: string | number;\n label?: any;\n icon?: any;\n loading?: boolean;\n}) => {\n const getContent = () => {\n return (\n \n \n \n {label}\n \n\n \n \n {value}\n \n \n \n \n {}\n {loading ? (\n \n ) : (\n icon\n )}\n \n \n );\n };\n\n return (\n \n {getContent()}\n \n );\n};\n\nexport default NumericStatCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport NumericStatCard from \"./NumericStatCard\";\nimport { BucketsIcon } from \"../../../../../icons\";\n\nconst BucketsCountItem = ({\n title,\n value,\n loading,\n}: {\n title: string;\n value: string;\n loading?: boolean;\n}) => {\n return (\n }\n value={value}\n loading={loading}\n />\n );\n};\n\nexport default BucketsCountItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport NumericStatCard from \"./NumericStatCard\";\nimport { TotalObjectsIcon } from \"../../../../../icons\";\n\nconst ObjectsCountItem = ({\n title,\n value,\n loading,\n}: {\n title: string;\n value: string;\n loading?: boolean;\n}) => {\n return (\n }\n value={value}\n loading={loading}\n />\n );\n};\n\nexport default ObjectsCountItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { representationNumber } from \"../../../../../common/utils\";\nimport api from \"../../../../../common/api\";\nimport DashboardItemBox from \"../../DashboardItemBox\";\nimport BucketsCountItem from \"./BucketsCountItem\";\nimport ObjectsCountItem from \"./ObjectsCountItem\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ISingleRepWidget {\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n color?: string;\n fillColor?: string;\n apiPrefix: string;\n}\n\nconst SingleRepWidget = ({\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n\n apiPrefix,\n}: ISingleRepWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let repNumber = \"\";\n\n if (result) {\n const resultRep = parseInt(result.innerLabel || \"0\");\n\n if (!isNaN(resultRep)) {\n repNumber = representationNumber(resultRep);\n } else {\n repNumber = \"0\";\n }\n }\n\n const renderById = (id: number) => {\n if (id === 66) {\n return (\n \n \n \n );\n }\n if (id === 44) {\n return (\n \n \n \n );\n }\n\n return null;\n };\n\n return renderById(panelItem.id);\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default connector(SingleRepWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { splitSizeMetric, widgetDetailsToPanel } from \"../utils\";\nimport { IDashboardPanel } from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\ninterface ISingleValueWidget {\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n classes: any;\n apiPrefix: string;\n renderFn?: (arg: Record) => any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n metric: {\n fontSize: 60,\n lineHeight: 1,\n color: \"#07193E\",\n fontWeight: 700,\n },\n titleElement: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: 700,\n },\n containerAlignment: {\n display: \"flex\",\n height: 140,\n flexDirection: \"column\",\n justifyContent: \"center\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n });\n\nconst SingleValueWidget = ({\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n classes,\n apiPrefix,\n renderFn,\n}: ISingleValueWidget) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const valueToRender = splitSizeMetric(data);\n\n if (renderFn) {\n return renderFn({ valueToRender, loading, title, id: panelItem.id });\n }\n return (\n \n {loading && (\n
\n \n
\n )}\n {!loading && (\n
\n {splitSizeMetric(data)}
\n {title}
\n \n )}\n
\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SingleValueWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { IDashboardPanel } from \"../types\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\n\nimport {\n calculateBytes,\n capacityColors,\n niceBytesInt,\n} from \"../../../../../common/utils\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { ReportedUsageIcon } from \"../../../../../icons\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\nconst CapacityItem = ({\n value,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n}: {\n value: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n}) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n\n const [totalUsableFree, setTotalUsableFree] = useState(0);\n const [totalUsableFreeRatio, setTotalUsableFreeRatio] = useState(0);\n const [totalUsed, setTotalUsed] = useState(0);\n const [totalUsable, setTotalUsable] = useState(0);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${value.id}/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, value);\n\n let tUsable = 0;\n let tUsed = 0;\n let tFree = 0;\n\n widgetsWithValue.data.forEach((eachArray: any[]) => {\n eachArray.forEach((itemSum) => {\n switch (itemSum.legend) {\n case \"Total Usable\":\n tUsable += itemSum.value;\n break;\n case \"Used Space\":\n tUsed += itemSum.value;\n break;\n case \"Usable Free\":\n tFree += itemSum.value;\n break;\n }\n });\n });\n\n const freeRatio = Math.round((tFree / tUsable) * 100);\n\n setTotalUsableFree(tFree);\n setTotalUsableFreeRatio(freeRatio);\n setTotalUsed(tUsed);\n setTotalUsable(tUsable);\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, value, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const usedConvert = calculateBytes(totalUsed, true, false);\n\n const plotValues = [\n {\n value: totalUsableFree,\n color: \"#D6D6D6\",\n label: \"Usable Available Space\",\n },\n {\n value: totalUsed,\n color: capacityColors(totalUsed, totalUsable),\n label: \"Used Space\",\n },\n ];\n return (\n \n \n Capacity\n \n \n \n {`${totalUsableFreeRatio}%`}\n \n \n Free\n \n \n \n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n \n \n \n \n Used:\n \n \n {usedConvert.total}
\n {usedConvert.unit}
\n \n \n Of: {niceBytesInt(totalUsable)}
\n \n \n\n \n \n {loading ? (\n \n ) : (\n \n )}\n \n \n \n \n );\n};\n\nexport default CapacityItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { SuccessIcon } from \"../../../icons\";\nimport Loader from \"../Common/Loader/Loader\";\n\nconst TimeStatItem = ({\n icon,\n label,\n value,\n loading = false,\n}: {\n icon: any;\n label: any;\n value: string;\n loading?: boolean;\n}) => {\n return (\n \n {loading ? : icon}\n \n {label}\n \n {value} \n {value !== \"n/a\" ? : null}\n \n );\n};\n\nexport default TimeStatItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\n\nexport type SimpleWidgetRenderProps = {\n valueToRender?: any;\n loading?: boolean;\n title?: any;\n id?: number;\n iconWidget?: any;\n};\nconst HealActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n \n \n Time since last\n {\" \"}\n Heal Activity\n \n }\n value={valueToRender}\n />\n \n );\n};\n\nexport default HealActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\nimport { SimpleWidgetRenderProps } from \"./HealActivityRenderer\";\n\nconst ScanActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n \n \n Time since last\n {\" \"}\n Scan Activity\n \n }\n value={valueToRender}\n />\n \n );\n};\n\nexport default ScanActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\n\nexport type SimpleWidgetRenderProps = {\n valueToRender?: any;\n loading?: boolean;\n title?: any;\n id?: number;\n iconWidget?: any;\n};\nconst UptimeActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n Uptime }\n value={valueToRender}\n />\n \n );\n};\n\nexport default UptimeActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport BarChartWidget from \"./Widgets/BarChartWidget\";\nimport LinearGraphWidget from \"./Widgets/LinearGraphWidget\";\nimport PieChartWidget from \"./Widgets/PieChartWidget\";\nimport SimpleWidget from \"./Widgets/SimpleWidget\";\nimport SingleRepWidget from \"./Widgets/SingleRepWidget\";\nimport SingleValueWidget from \"./Widgets/SingleValueWidget\";\nimport CapacityItem from \"./Widgets/CapacityItem\";\nimport DashboardItemBox from \"../DashboardItemBox\";\nimport HealActivityRenderer, {\n SimpleWidgetRenderProps,\n} from \"./Widgets/HealActivityRenderer\";\nimport ScanActivityRenderer from \"./Widgets/ScanActivityRenderer\";\nimport UptimeActivityRenderer from \"./Widgets/UptimeActivityRenderer\";\n\nexport const componentToUse = (\n value: IDashboardPanel,\n timeStart: any,\n timeEnd: any,\n loading: boolean,\n apiPrefix: string,\n zoomActivated: boolean = false\n) => {\n switch (value.type) {\n case widgetType.singleValue:\n return (\n \n );\n case widgetType.simpleWidget:\n let renderFn;\n let CmpToRender: any = null;\n if (value.id === 80) {\n CmpToRender = HealActivityRenderer;\n } else if (value.id === 81) {\n CmpToRender = ScanActivityRenderer;\n } else if (value.id === 1) {\n CmpToRender = UptimeActivityRenderer;\n }\n\n if ([80, 81, 1].includes(value.id)) {\n renderFn = ({\n valueToRender,\n loading,\n title,\n id,\n iconWidget,\n }: SimpleWidgetRenderProps) => {\n return (\n \n );\n };\n }\n return (\n \n );\n case widgetType.pieChart:\n if (value.id === 50) {\n return (\n \n \n \n );\n }\n return (\n \n );\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n return (\n \n );\n case widgetType.barChart:\n return (\n \n );\n case widgetType.singleRep:\n const fillColor = value.fillColor ? value.fillColor : value.color;\n return (\n \n );\n default:\n return null;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { IDashboardPanel } from \"./types\";\nimport { componentToUse } from \"./widgetUtils\";\nimport { closeZoomPage } from \"../dashboardSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IZoomWidget {\n widgetRender: number;\n value: IDashboardPanel | null;\n modalOpen: boolean;\n timeStart: any;\n timeEnd: any;\n apiPrefix: string;\n}\n\nconst ZoomWidget = ({\n value,\n modalOpen,\n timeStart,\n timeEnd,\n apiPrefix,\n}: IZoomWidget) => {\n const dispatch = useAppDispatch();\n if (!value) {\n return null;\n }\n\n return (\n {\n dispatch(closeZoomPage());\n }}\n modalOpen={modalOpen}\n wideLimit={false}\n noContentPadding\n >\n \n {componentToUse(value, timeStart, timeEnd, true, apiPrefix, true)}\n \n \n );\n};\n\nexport default ZoomWidget;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box } from \"@mui/material\";\nimport { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type DLayoutColumnProps = {\n componentId: number;\n sx?: SxProps;\n};\nexport type DLayoutRowProps = {\n sx?: SxProps;\n columns: DLayoutColumnProps[];\n};\n\nexport const summaryPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n minWidth: 0,\n display: \"grid\",\n gridTemplateColumns: {\n md: \"1fr 1fr 1fr 1fr\",\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 66,\n },\n {\n componentId: 44,\n },\n {\n componentId: 500,\n },\n {\n componentId: 501,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0, // important to avoid css grid blow out.\n gridTemplateColumns: {\n md: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 50,\n },\n {\n componentId: 502,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n md: \"1fr 1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 80,\n },\n {\n componentId: 81,\n },\n {\n componentId: 1,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 68,\n },\n {\n componentId: 52,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 63,\n },\n {\n componentId: 70,\n },\n ],\n },\n];\n\nexport const trafficPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 60,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 71,\n sx: {\n flex: 1,\n width: \"50%\",\n flexShrink: 0,\n },\n },\n {\n componentId: 17,\n sx: {\n flex: 1,\n width: \"50%\",\n flexShrink: 0,\n },\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 73,\n },\n ],\n },\n];\n\nexport const resourcesPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 76,\n },\n {\n componentId: 77,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 82,\n },\n {\n componentId: 74,\n },\n ],\n },\n];\nexport const resourcesPanelsLayoutAdvanced: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 11,\n },\n {\n componentId: 8,\n },\n ],\n },\n];\n\nexport const RowPanelLayout = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Card, CardHeader } from \"@mui/material\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport React, { Fragment } from \"react\";\nimport { widgetCommon } from \"../Common/FormComponents/common/styleLibrary\";\n\nexport interface ISubInterface {\n message: string;\n fontWeight?: \"normal\" | \"bold\";\n}\n\ninterface ICommonCard {\n title: string;\n metricValue: any;\n metricUnit?: string;\n subMessage?: ISubInterface;\n moreLink?: string;\n rightComponent?: any;\n extraMargin?: boolean;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n cardRoot: {\n ...widgetCommon.singleValueContainer,\n \"&.MuiPaper-root\": {\n borderRadius: 10,\n },\n },\n metricText: {\n fontSize: 70,\n lineHeight: 1.1,\n color: \"#07193E\",\n fontWeight: \"bold\",\n },\n unitText: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: \"normal\",\n },\n subHearderContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n subMessage: {\n fontSize: 10,\n color: \"#767676\",\n \"&.bold\": {\n fontWeight: \"bold\",\n },\n },\n headerContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n viewAll: {\n fontSize: 10,\n color: \"#C83B51\",\n textTransform: \"capitalize\",\n\n \"& a, & a:hover, & a:visited, & a:active\": {\n color: \"#C83B51\",\n },\n },\n extraMargin: {\n margin: \"10px 20px 10px 0\",\n },\n });\n\nconst cardSubStyles = makeStyles({\n root: { backgroundColor: \"#fff\", padding: 0 },\n title: {\n ...widgetCommon.titleContainer,\n },\n content: {\n maxWidth: \"100%\",\n },\n});\n\nconst CommonCard = ({\n title,\n metricValue,\n metricUnit,\n subMessage,\n moreLink,\n rightComponent,\n extraMargin = false,\n classes,\n}: ICommonCard) => {\n const subStyles = cardSubStyles();\n const SubHeader = () => {\n return (\n \n \n
\n
\n \n {metricValue}\n {metricUnit} \n \n
\n {subMessage && (\n
\n {subMessage.message}\n
\n )}\n
\n
{rightComponent}
\n
\n \n );\n };\n\n const Header = () => {\n return (\n \n \n {title} \n {moreLink && (\n \n \n View All\n \n \n )}\n
\n \n );\n };\n\n return (\n \n \n {metricValue !== \"\" && (\n }\n subheader={\n \n \n \n }\n classes={{\n root: subStyles.root,\n title: subStyles.title,\n content: subStyles.content,\n }}\n />\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(CommonCard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport CommonCard from \"../CommonCard\";\n\ninterface IMergedWidgets {\n title: string;\n leftComponent: any;\n rightComponent: any;\n}\n\nconst MergedWidgets = ({\n title,\n leftComponent,\n rightComponent,\n}: IMergedWidgets) => {\n return (\n \n \n \n );\n};\n\nexport default MergedWidgets;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { IDashboardPanel } from \"../types\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../store\";\n\nconst EntityStateStatItem = ({\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n statLabel,\n}: {\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n statLabel: any;\n}) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let toRender = loading ? (\n \n \n \n ) : (\n \n {data} \n {statLabel}\n \n );\n\n return toRender;\n};\n\nexport default EntityStateStatItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\nconst DualStatCard = ({\n statItemLeft = null,\n statItemRight = null,\n icon = null,\n label = \"\",\n}: {\n statItemLeft: any;\n statItemRight: any;\n icon: any;\n label: string;\n}) => {\n const getContent = () => {\n return (\n \n \n \n {label}\n \n\n \n {statItemLeft}\n {statItemRight}\n \n \n \n {icon}\n \n \n );\n };\n\n return (\n \n {getContent()}\n \n );\n};\n\nexport default DualStatCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport EntityStateStatItem from \"./EntityStateStatItem\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon, DrivesIcon, ServersIcon } from \"../../../../../icons\";\nimport DualStatCard from \"./DualStatCard\";\nimport { IDashboardPanel } from \"../types\";\n\nconst EntityStateItemRenderer = ({\n info,\n timeStart,\n timeEnd,\n loading,\n apiPrefix,\n}: {\n info: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n loading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [], id } = info;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const lStatItem = (\n \n \n Online
\n \n }\n />\n );\n const rStatItem = (\n \n \n Offline
\n \n }\n />\n );\n\n let statIcon = null;\n let statLabel = \"\";\n if (id === 500) {\n statIcon = ;\n statLabel = \"Servers\";\n } else if (id === 501) {\n statIcon = ;\n statLabel = \"Drives\";\n }\n\n return (\n \n );\n};\nexport default EntityStateItemRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { NetworkGetIcon } from \"../../../../../icons\";\n\nconst NetworkGetItem = ({\n value,\n loading,\n}: {\n value: any;\n loading: boolean;\n title?: any;\n id?: number;\n}) => {\n return (\n \n \n \n GET\n \n {loading ? (\n \n ) : (\n \n )}\n \n \n {value}\n \n \n );\n};\n\nexport default NetworkGetItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { NetworkPutIcon } from \"../../../../../icons\";\n\nconst NetworkPutItem = ({\n value,\n loading,\n}: {\n value: any;\n loading: boolean;\n title?: any;\n id?: number;\n}) => {\n return (\n \n \n \n PUT\n \n {loading ? (\n \n ) : (\n \n )}\n \n \n {value}\n \n \n );\n};\n\nexport default NetworkPutItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IDashboardPanel } from \"../types\";\nimport { Box } from \"@mui/material\";\nimport { SpeedtestIcon } from \"../../../../../icons\";\nimport SingleValueWidget from \"./SingleValueWidget\";\nimport NetworkGetItem from \"./NetworkGetItem\";\nimport NetworkPutItem from \"./NetworkPutItem\";\n\nconst NetworkItem = ({\n value,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n}: {\n value: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [] } = value;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const rightCmp = (\n {\n return (\n \n );\n }}\n />\n );\n const leftCmp = (\n {\n return (\n \n );\n }}\n />\n );\n\n return (\n \n \n Network\n \n \n \n {leftCmp}\n \n \n \n \n {rightCmp}\n \n \n \n \n \n \n );\n};\n\nexport default NetworkItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { componentToUse } from \"../widgetUtils\";\nimport MergedWidgets from \"../MergedWidgets\";\nimport { IDashboardPanel } from \"../types\";\nimport EntityStateItemRenderer from \"./EntityStateItemRenderer\";\nimport NetworkItem from \"./NetworkItem\";\nimport DashboardItemBox from \"../../DashboardItemBox\";\n\nconst MergedWidgetsRenderer = ({\n info,\n timeStart,\n timeEnd,\n loading,\n apiPrefix,\n}: {\n info: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n loading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [], title = \"\", id } = info;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const renderById = () => {\n if ([500, 501].includes(id)) {\n return (\n \n \n \n );\n }\n\n if (id === 502) {\n return (\n \n \n \n );\n }\n\n return (\n \n );\n };\n\n return renderById();\n};\n\nexport default MergedWidgetsRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box } from \"@mui/material\";\nimport {\n actionsTray,\n widgetContainerCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"./types\";\nimport { getWidgetsWithValue, panelsConfiguration } from \"./utils\";\nimport { TabPanel } from \"../../../shared/tabs\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\n\nimport TabSelector from \"../../Common/TabSelector/TabSelector\";\nimport { componentToUse } from \"./widgetUtils\";\nimport ZoomWidget from \"./ZoomWidget\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport DateRangeSelector from \"../../Common/FormComponents/DateRangeSelector/DateRangeSelector\";\nimport {\n DLayoutColumnProps,\n DLayoutRowProps,\n resourcesPanelsLayout,\n resourcesPanelsLayoutAdvanced,\n RowPanelLayout,\n summaryPanelsLayout,\n trafficPanelsLayout,\n} from \"./Widgets/LayoutUtil\";\nimport MergedWidgetsRenderer from \"./Widgets/MergedWidgetsRenderer\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\n\ninterface IPrDashboard {\n classes?: any;\n apiPrefix?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n dashboardRow: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n flexWrap: \"wrap\",\n },\n });\n\nconst PrDashboard = ({ apiPrefix = \"admin\" }: IPrDashboard) => {\n const dispatch = useAppDispatch();\n const zoomOpen = useSelector(\n (state: AppState) => state.dashboard.zoom.openZoom\n );\n const zoomWidget = useSelector(\n (state: AppState) => state.dashboard.zoom.widgetRender\n );\n\n const [timeStart, setTimeStart] = useState(null);\n const [timeEnd, setTimeEnd] = useState(null);\n const [loading, setLoading] = useState(true);\n const [panelInformation, setPanelInformation] =\n useState(panelsConfiguration);\n const [curTab, setCurTab] = useState(0);\n\n const getPanelDetails = (id: number) => {\n return panelInformation.find((panel) => panel.id === id);\n };\n\n const fetchUsage = useCallback(() => {\n let stepCalc = 0;\n\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n if (res.widgets) {\n const widgetsWithValue = getWidgetsWithValue(res.widgets);\n setPanelInformation(widgetsWithValue);\n } else {\n dispatch(\n setErrorSnackMessage({\n errorMessage:\n \"Widget information could not be retrieved at this time. Please try again\",\n detailedError: \"\",\n })\n );\n }\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }, [timeStart, timeEnd, dispatch, apiPrefix]);\n\n const triggerLoad = () => {\n setLoading(true);\n };\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const renderCmpByConfig = (\n panelInfo: IDashboardPanel | undefined,\n key: string\n ) => {\n return (\n \n {panelInfo ? (\n \n {panelInfo.mergedPanels ? (\n \n ) : (\n componentToUse(panelInfo, timeStart, timeEnd, loading, apiPrefix)\n )}\n \n ) : null}\n \n );\n };\n\n const renderPanelItems = (layoutRows: DLayoutRowProps[]) => {\n return layoutRows.reduce((prev: any[], rowItem, rIdx) => {\n const { columns = [] } = rowItem;\n const cellItems: any[] = columns.map(\n (cellItem: DLayoutColumnProps, colIdx: number) => {\n const panelInfo = getPanelDetails(cellItem.componentId);\n return renderCmpByConfig(panelInfo, `${rIdx}-${colIdx}`);\n }\n );\n const rowConfig = (\n \n {cellItems}\n \n );\n return [...prev, rowConfig];\n }, []);\n };\n\n const renderSummaryPanels = () => {\n return renderPanelItems(summaryPanelsLayout);\n };\n\n const renderTrafficPanels = () => {\n return renderPanelItems(trafficPanelsLayout);\n };\n\n const renderResourcesPanels = () => {\n return renderPanelItems(resourcesPanelsLayout);\n };\n\n const renderAdvancedResourcesPanels = () => {\n return renderPanelItems(resourcesPanelsLayoutAdvanced);\n };\n\n return (\n \n {zoomOpen && (\n \n )}\n\n \n {\n setCurTab(newValue);\n }}\n tabOptions={[\n { label: \"Usage\" },\n { label: \"Traffic\" },\n { label: \"Resources\" },\n ]}\n />\n \n \n \n \n \n \n \n {panelInformation.length ? renderSummaryPanels() : null}\n \n \n \n \n {panelInformation.length ? renderTrafficPanels() : null}\n \n \n \n \n {panelInformation.length ? renderResourcesPanels() : null}\n \n Advanced\n \n {panelInformation.length ? renderAdvancedResourcesPanels() : null}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PrDashboard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ServerInfo } from \"../types\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\nimport get from \"lodash/get\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n getDriveStatusColor,\n getNetworkStatusColor,\n serverStatusColor,\n} from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n server: ServerInfo;\n index: number;\n}\n\nconst ServerStatItem = ({\n label = \"\",\n value = \"\",\n statusColor = \"\",\n hasStatus = false,\n}: {\n label?: string;\n value?: any;\n hasStatus?: boolean;\n statusColor: string | undefined;\n}) => {\n return (\n \n \n \n {value}{\" \"}\n \n {hasStatus ? (\n \n \n \n ) : (\n \n )}\n \n
\n {label}
\n \n \n );\n};\n\nconst ServerInfoItem = ({ server }: ICardProps) => {\n const networkKeys = Object.keys(get(server, \"network\", {}));\n const networkTotal = networkKeys.length;\n const totalDrives = server.drives ? server.drives.length : 0;\n const activeNetwork = networkKeys.reduce((acc: number, currValue: string) => {\n const item = server.network[currValue];\n if (item === \"online\") {\n return acc + 1;\n }\n return acc;\n }, 0);\n const activeDisks = server.drives\n ? server.drives.filter((element) => element.state === \"ok\").length\n : 0;\n return (\n \n \n \n \n {server.endpoint || \"\"}\n \n {server?.state && (\n \n \n \n )}\n \n\n \n \n \n\n \n \n \n Version: \n {server.version ? server.version : \"N/A\"}\n \n }\n />\n \n \n );\n};\nexport default withStyles(styles)(ServerInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IDriveInfo } from \"../types\";\nimport {\n capacityColors,\n niceBytes,\n niceBytesInt,\n} from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { STATUS_COLORS } from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n drive: IDriveInfo;\n}\n\nconst driveStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"ok\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\n\nconst DriveInfoItem = ({ drive }: ICardProps) => {\n const freeSpace = drive.totalSpace - drive.usedSpace;\n\n const plotValues = [\n { value: freeSpace, color: \"#D6D6D6\", label: \"Free Space\" },\n {\n value: drive.usedSpace,\n color: capacityColors(drive.usedSpace, drive.totalSpace),\n label: \"Used Space\",\n },\n ];\n return (\n \n \n \n {drive.endpoint || \"\"}
\n {drive.state && }\n \n\n \n \n \n
\n {niceBytesInt(drive.usedSpace)}\n \n
\n
\n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n
\n
\n \n\n \n \n \n {niceBytes(\n drive.totalSpace ? drive.totalSpace.toString() : \"0\"\n )}\n
\n Capacity \n \n\n \n \n {niceBytes(drive.usedSpace ? drive.usedSpace.toString() : \"0\")}\n
\n Used \n \n \n \n {niceBytes(\n drive.availableSpace ? drive.availableSpace.toString() : \"0\"\n )}\n
\n Available \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(DriveInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport Collapse from \"@mui/material/Collapse\";\nimport { ServerInfo } from \"../types\";\nimport ServerInfoItem from \"./ServerInfoItem\";\nimport { Box } from \"@mui/material\";\nimport DriveInfoItem from \"./DriveInfoItem\";\nimport {\n MenuCollapsedIcon,\n MenuExpandedIcon,\n} from \"../../../../icons/SidebarMenus\";\n\nconst ServersList = ({ data }: { data: ServerInfo[] }) => {\n const [expanded, setExpanded] = React.useState(\n data.length > 1 ? \"\" : data[0].endpoint + \"-0\"\n );\n\n const handleClick = (key: string) => {\n setExpanded(key);\n };\n\n return (\n \n \n Servers ({data.length})\n \n \n {data.map((serverInfo, index) => {\n const key = `${serverInfo.endpoint}-${index}`;\n const isExpanded = expanded === key;\n return (\n \n {\n if (!isExpanded) {\n handleClick(key);\n } else {\n handleClick(\"\");\n }\n }}\n className={isExpanded ? \"expanded\" : \"\"}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n border: \"1px solid #f1f1f1\",\n padding: \"3px 10px 3px 10px\",\n\n \"&:hover\": {\n background: \"#bebbbb0d\",\n },\n }}\n >\n \n \n {isExpanded ? (\n \n ) : (\n \n )}\n \n \n {isExpanded ? (\n \n \n Drives ({serverInfo.drives.length})\n \n\n \n {serverInfo.drives.map((driveInfo, index) => {\n return (\n \n );\n })}\n \n \n ) : null}\n \n );\n })}\n
\n \n );\n};\n\nexport default ServersList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\n\nconst CounterCard = ({\n counterValue,\n label = \"\",\n icon = null,\n actions = null,\n loading = false,\n}: {\n counterValue: string | number;\n label?: any;\n icon?: any;\n actions?: any;\n loading?: boolean;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n {counterValue}\n \n \n \n \n {icon}\n\n {actions} \n \n \n \n );\n};\n\nexport default CounterCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\n\nconst ReportedUsage = ({\n usageValue,\n total,\n unit,\n}: {\n usageValue: string;\n total: number | string;\n unit: string;\n}) => {\n const plotValues = [\n { value: total, color: \"#D6D6D6\", label: \"Free Space\" },\n {\n value: usageValue,\n color: \"#073052\",\n label: \"Used Space\",\n },\n ];\n\n return (\n \n \n \n Reported Usage \n
\n\n \n \n {total}\n \n \n {unit} \n \n\n \n \n \n
\n
\n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n
\n
\n \n \n \n );\n};\n\nexport default ReportedUsage;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n ArrowRightIcon,\n BucketsIcon,\n DrivesIcon,\n HealIcon,\n PrometheusErrorIcon,\n ServersIcon,\n TotalObjectsIcon,\n UptimeIcon,\n} from \"../../../../icons\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { calculateBytes, representationNumber } from \"../../../../common/utils\";\nimport { IDriveInfo, Usage } from \"../types\";\nimport StatusCountCard from \"./StatusCountCard\";\nimport groupBy from \"lodash/groupBy\";\nimport ServersList from \"./ServersList\";\nimport CounterCard from \"./CounterCard\";\nimport ReportedUsage from \"./ReportedUsage\";\nimport { DiagnosticsMenuIcon } from \"../../../../icons/SidebarMenus\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { Link } from \"react-router-dom\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport TimeStatItem from \"../TimeStatItem\";\n\nconst BoxItem = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n\ninterface IDashboardProps {\n usage: Usage | null;\n}\n\nconst getServersList = (usage: Usage | null) => {\n if (usage !== null) {\n return usage.servers.sort(function (a, b) {\n const nameA = a.endpoint.toLowerCase();\n const nameB = b.endpoint.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n }\n\n return [];\n};\n\nconst prettyUsage = (usage: string | undefined) => {\n if (usage === undefined) {\n return { total: \"0\", unit: \"Mi\" };\n }\n\n return calculateBytes(usage);\n};\n\nconst BasicDashboard = ({ usage }: IDashboardProps) => {\n const usageValue = usage && usage.usage ? usage.usage.toString() : \"0\";\n const usageToRepresent = prettyUsage(usageValue);\n\n const { lastScan = \"n/a\", lastHeal = \"n/a\", upTime = \"n/a\" } = usage || {};\n\n const serverList = getServersList(usage || null);\n\n let allDrivesArray: IDriveInfo[] = [];\n\n serverList.forEach((server) => {\n const drivesInput = server.drives.map((drive) => {\n return drive;\n });\n\n allDrivesArray = [...allDrivesArray, ...drivesInput];\n });\n\n const serversGroup = groupBy(serverList, \"state\");\n const { offline: offlineServers = [], online: onlineServers = [] } =\n serversGroup;\n const drivesGroup = groupBy(allDrivesArray, \"state\");\n const { offline: offlineDrives = [], ok: onlineDrives = [] } = drivesGroup;\n\n return (\n \n \n \n {usage?.prometheusNotReady && (\n }\n title={\"We can't retrieve advanced metrics at this time\"}\n help={\n \n MinIO Dashboard will display basic metrics as we couldn't\n connect to Prometheus successfully.\n \n Please try again in a few minutes. If the problem persists,\n you can review your configuration and confirm that Prometheus\n server is up and running.\n \n }\n />\n )}\n\n {!usage?.prometheusNotReady && (\n }\n title={\"We can’t retrieve advanced metrics at this time.\"}\n help={\n \n \n MinIO Dashboard will display basic metrics as we couldn’t\n connect to Prometheus successfully. Please try again in a\n few minutes. If the problem persists, you can review your\n configuration and confirm that Prometheus server is up and\n running.\n \n theme.colors.link,\n },\n }}\n >\n \n Read more about Prometheus on our Docs site.\n \n \n \n }\n />\n )}\n \n\n \n \n \n }\n counterValue={usage ? representationNumber(usage.buckets) : 0}\n actions={\n \n {}}\n text={\"Browse\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n }\n />\n \n \n }\n counterValue={usage ? representationNumber(usage.objects) : 0}\n />\n \n\n \n }\n />\n \n \n }\n />\n \n\n \n \n\n \n }\n label={\n \n \n Time since last\n {\" \"}\n Heal Activity\n \n }\n value={lastHeal}\n />\n }\n label={\n \n \n Time since last\n {\" \"}\n Scan Activity\n \n }\n value={lastScan}\n />\n }\n label={\"Uptime\"}\n value={upTime}\n />\n \n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default BasicDashboard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\n\nimport get from \"lodash/get\";\nimport PrDashboard from \"./Prometheus/PrDashboard\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport Grid from \"@mui/material/Grid\";\nimport { containerForHeader } from \"../Common/FormComponents/common/styleLibrary\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport api from \"../../../common/api\";\nimport { Usage } from \"./types\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport BasicDashboard from \"./BasicDashboard/BasicDashboard\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\ninterface IDashboardSimple {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Dashboard = ({ classes }: IDashboardSimple) => {\n const dispatch = useAppDispatch();\n const [loading, setLoading] = useState(true);\n const [basicResult, setBasicResult] = useState(null);\n\n const fetchUsage = useCallback(() => {\n api\n .invoke(\"GET\", `/api/v1/admin/info`)\n .then((res: Usage) => {\n setBasicResult(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }, [setBasicResult, setLoading, dispatch]);\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const widgets = get(basicResult, \"widgets\", null);\n\n return (\n \n \n {loading ? (\n \n \n \n \n \n ) : (\n \n {widgets !== null ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(Dashboard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n value: any;\n}\n\nexport const TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n\n return (\n \n {value === index && {children} }\n
\n );\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","DateFilterAdornIcon","sx","actionsTray","widgetContainerCommon","syncButton","schedulerIcon","opacity","selectorLabel","color","whiteSpace","marginLeft","timeStart","setTimeStart","timeEnd","setTimeEnd","triggerSync","label","startLabel","endLabel","WebkitTextFillColor","md","gridTemplateColumns","sm","padding","gap","fill","value","onChange","id","classNamePrefix","forFilterContained","noInputIcon","openPickerIcon","justifyContent","type","variant","onClick","endIcon","dateSelectorOverride","borderBottom","borderColor","dateSelectorFilterOverride","dateSelectorFormOverride","maxWidth","parentDateOverride","flexGrow","textBoxContainer","openListIcon","marginTop","paperOverride","margin","textAlign","palette","primary","main","minHeight","borderTop","content","position","top","left","fieldBasic","tooltipHelper","forSearchBlock","tooltip","required","disabled","adornment","startAdornment","endAdornment","classOverridden","clsName","inputItem","dateAdapter","AdapterMoment","InputProps","components","OpenPickerIcon","renderInput","props","ampm","PopperProps","containerCls","fieldContainer","Fragment","htmlFor","inputLabel","tooltipContainer","placement","deleteDialogStyles","customDialogSize","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","dispatch","useAppDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","onlineCount","offlineCount","icon","okStatusText","notOkStatusText","fontFamily","cursor","flex","flexFlow","xl","lg","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","widgetType","colorsMain","niceDaysFromNS","seconds","niceDays","roundNumber","parseInt","toString","panelsConfiguration","data","simpleWidget","widgetIcon","labelDisplayFunction","dataOuter","name","widgetConfiguration","outerChart","colorList","innerRadius","outerRadius","startAngle","endAngle","innerChart","pieChart","innerLabel","niceBytes","dataKey","keyLabel","lineColor","fillColor","areaGraph","yAxisFormatter","xAxisFormatter","getTimeFromTimestamp","background","greatestColor","customStructure","originTag","displayTag","barChart","singleRep","strokeWidth","linearGraph","HealIcon","DiagnosticsIcon","disableYAxis","mergedPanels","singleValue","calculateMainValue","elements","metricCalc","sumValues","reduce","accumulator","currValue","parseFloat","Math","floor","sortResult","sort","value1","value2","widgetDetailsToPanel","payloadData","panelItem","typeOfPayload","get","valueDisplay","chartSeries","filter","seriesItem","values","map","chartTarget","result","Array","isArray","elementValue","metricKeyItem","Object","keys","metric","metricName","legend","legendFormat","firstTarget","totalValues","targets","series","plotValues","forEach","targetMaster","index","results","itemVals","labelName","metrics","keysToReplace","expToReplace","RegExp","join","replacedLegend","replace","matchItem","nwMatchItem","countVarsOpen","match","countVarsClose","cleanLegend","element","constructLabelNames","keyName","push","valInfo","itemIndex","findIndex","itemToPush","seriesWithColors","series1","series2","serialC","textToRGBColor","sortedVals","chartBars","sortFunction","structureItem","metricTake","find","lastValue","a","valuesForBackground","eachVal","splitSizeMetric","val","splittedText","split","vl","isNaN","representationNumber","units","tabSubStyles","makeStyles","tabRoot","selected","indicator","scroller","selectedTab","tabOptions","subStyles","Tabs","indicatorColor","textColor","scrollButtons","e","newValue","option","Tab","key","tooltipCommon","active","payload","barChartConfiguration","customTooltip","timeStampTitle","pl","labelContainer","labelColor","style","itemValue","valueContainer","Box","href","rel","preventDefault","openZoomPage","ZoomOutMap","Z","CustomizedAxisTick","y","textAnchor","transform","dy","widgetCommon","loadingAlign","propLoading","apiPrefix","zoomActivated","loading","setLoading","setData","setResult","stepCalc","secondsInPeriod","unix","periods","api","then","res","widgetsWithValue","catch","err","setErrorSnackMessage","greatestIndex","currentValue","dataGraph","useTheme","biggerThanMd","useMediaQuery","breakpoints","up","singleValueContainer","titleContainer","Loader","zoomChartCont","contentContainer","ResponsiveContainer","BarChart","layout","barCategoryGap","XAxis","hide","YAxis","interval","tick","tickLine","axisLine","bar","Bar","barSize","_","Cell","Tooltip","linearConfiguration","verticalAlignment","flexDirection","chartCont","legendChart","maxHeight","overflowY","hideYAxis","areaWidget","dataMax","setDataMax","maxVal","dp","intervalCount","CustomizedDot","prop","cx","cy","r","AreaChart","right","bottom","x1","y1","x2","y2","offset","stopColor","stopOpacity","CartesianGrid","strokeDasharray","strokeOpacity","stroke","vertical","tickFormatter","tickCount","domain","section","Area","isAnimationActive","fillOpacity","strokeLinecap","dot","wrapperStyle","zIndex","singleLegendContainer","colorContainer","legendLabel","pieChartLabel","chartContainer","dataInner","setDataInner","setDataOuter","pieChartConfiguration","middleLabel","innerColors","outerColors","PieChart","Pie","entry","connector","connect","mainWidgetContainer","widgetLabel","textTransform","widgetValue","iconWidget","renderFn","valueToRender","overflow","enterDelay","textOverflow","repNumber","resultRep","lineHeight","titleElement","containerAlignment","totalUsableFree","setTotalUsableFree","totalUsableFreeRatio","setTotalUsableFreeRatio","totalUsed","setTotalUsed","totalUsable","setTotalUsable","tUsable","tUsed","tFree","eachArray","itemSum","freeRatio","round","usedConvert","calculateBytes","capacityColors","alignSelf","animationDuration","total","unit","niceBytesInt","componentToUse","CmpToRender","HealActivityRenderer","ScanActivityRenderer","UptimeActivityRenderer","includes","ModalWrapper","closeZoomPage","summaryPanelsLayout","minWidth","columns","componentId","trafficPanelsLayout","flexShrink","resourcesPanelsLayout","resourcesPanelsLayoutAdvanced","RowPanelLayout","cardSubStyles","cardRoot","metricText","unitText","subHearderContainer","subMessage","headerContainer","viewAll","extraMargin","metricValue","metricUnit","moreLink","rightComponent","SubHeader","leftSide","rightSide","Header","to","Card","CardHeader","subheader","leftComponent","statLabel","statItemLeft","statItemRight","info","leftPanel","rightPanel","lStatItem","rStatItem","statIcon","rightCmp","leftCmp","dashboardRow","flexWrap","zoomOpen","dashboard","zoom","openZoom","zoomWidget","widgetRender","panelInformation","setPanelInformation","curTab","setCurTab","fetchUsage","useCallback","widgets","panelT","toLowerCase","trim","errorMessage","detailedError","renderPanelItems","layoutRows","prev","rowItem","rIdx","cellItems","cellItem","colIdx","panelInfo","renderCmpByConfig","panel","rowConfig","PageLayout","Grid","DateRangeSelector","ServerStatItem","statusColor","hasStatus","commonDashboardInfocard","server","networkKeys","drives","acc","network","endpoint","uptime","version","driveStatusColor","drive","totalSpace","usedSpace","wordBreak","availableSpace","React","expanded","setExpanded","handleClick","List","component","serverInfo","isExpanded","ListItemButton","ListSubheader","Collapse","in","timeout","unmountOnExit","driveInfo","counterValue","actions","usageValue","BoxItem","usage","usageToRepresent","undefined","prettyUsage","lastScan","lastHeal","upTime","serverList","servers","b","nameA","nameB","getServersList","allDrivesArray","drivesInput","serversGroup","groupBy","offline","offlineServers","online","onlineServers","drivesGroup","offlineDrives","ok","onlineDrives","gridTemplateRows","prometheusNotReady","HelpBox","colors","link","target","buckets","IAM_PAGES","textDecoration","RBIconButton","text","objects","StatusCountCard","gridRowStart","gridRowEnd","gridColumnStart","containerForHeader","spacing","basicResult","setBasicResult","PageHeader","LinearProgress","TabPanel","other","role","hidden"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1182.f9bcec67.chunk.js b/portal-ui/build/static/js/1182.f9bcec67.chunk.js
deleted file mode 100644
index 3283aacdc..000000000
--- a/portal-ui/build/static/js/1182.f9bcec67.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1182],{23804:function(e,t,i){i(72791);var n=i(11135),a=i(25787),l=i(61889),r=i(80184);t.Z=(0,a.Z)((function(e){return(0,n.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,i=e.iconComponent,n=e.title,a=e.help;return(0,r.jsx)("div",{className:t.root,children:(0,r.jsxs)(l.ZP,{container:!0,children:[(0,r.jsxs)(l.ZP,{item:!0,xs:12,className:t.leftItems,children:[i,n]}),(0,r.jsx)(l.ZP,{item:!0,xs:12,className:t.helpText,children:a})]})})}))},63856:function(e,t,i){var n=i(1413),a=(i(72791),i(11135)),l=i(25787),r=i(64554),o=i(61889),s=i(36151),d=i(27197),c=i(32686),x=i(23814),u=i(80705),p=i(85090),f=i(51047),h=i(80184),m=function(){return(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px"}},children:(0,h.jsx)(f.Q2V,{})})};t.Z=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},x.OR),x.bN),{},{syncButton:{"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type":{fontSize:18}},schedulerIcon:{opacity:.4,fontSize:10,"& svg":{width:18,height:18}},selectorLabel:{color:"#9D9E9D",fontWeight:"bold",whiteSpace:"nowrap",marginLeft:10,fontSize:12}}))}))((function(e){var t=e.classes,i=e.timeStart,n=e.setTimeStart,a=e.timeEnd,l=e.setTimeEnd,x=e.triggerSync,f=e.label,g=void 0===f?"Filter:":f,v=e.startLabel,j=void 0===v?"Start Time:":v,b=e.endLabel,y=void 0===b?"End Time:":b;return(0,h.jsx)(o.ZP,{item:!0,xs:12,sx:{"& .filter-date-input-label, .end-time-input-label":{display:"none"},"& .MuiInputBase-adornedEnd.filter-date-date-time-input":{width:"100%",border:"1px solid #eaeaea",paddingLeft:"8px",paddingRight:"8px",borderRadius:"1px"},"& .MuiInputAdornment-root button":{height:"20px",width:"20px",marginRight:"5px"},"& .filter-date-input-wrapper":{height:"30px",width:"100%","& .MuiTextField-root":{height:"30px",width:"90%","& input.Mui-disabled":{color:"#000000",WebkitTextFillColor:"#101010"}}}},children:(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},alignItems:"center",gridTemplateColumns:{md:"auto 2fr auto",sm:"1fr"},padding:{md:"0",xs:" 5px"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{fontSize:"14px",fontWeight:500,marginRight:"5px"},children:g}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:{md:"40px",xs:"auto"},border:{md:"1px solid #eaeaea"},alignItems:"center",gridTemplateColumns:{md:"1fr 1fr",sm:"1fr"},gap:"8px",paddingLeft:"8px",paddingRight:"8px"},children:[(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(d.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:j}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:i,onChange:n,id:"stTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]}),(0,h.jsxs)(r.Z,{sx:{display:"grid",height:"30px",alignItems:"center",gridTemplateColumns:{xs:"12px auto 1fr"},gap:"5px"},children:[(0,h.jsx)(r.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{width:"10px",height:"10px",fill:"#B4B5B4"}},children:(0,h.jsx)(c.Z,{className:"min-icon"})}),(0,h.jsx)(r.Z,{sx:{fontSize:"12px",marginLeft:"8px"},children:y}),(0,h.jsx)(r.Z,{children:(0,h.jsx)(u.Z,{value:a,onChange:l,id:"endTime",classNamePrefix:"filter-date-",forFilterContained:!0,noInputIcon:!0,openPickerIcon:m})})]})]}),x&&(0,h.jsx)(r.Z,{sx:{alignItems:"flex-end",display:"flex",justifyContent:"flex-end",marginRight:"35px"},children:(0,h.jsx)(s.Z,{type:"button",variant:"contained",color:"primary",onClick:x,endIcon:(0,h.jsx)(p.Z,{}),className:t.syncButton,children:"Sync"})})]})})}))},80705:function(e,t,i){var n=i(1413),a=i(72791),l=i(27391),r=i(61889),o=i(30829),s=i(20068),d=i(49979),c=i(47341),x=i(71652),u=i(63466),p=i(27197),f=i(11135),h=i(25787),m=i(84570),g=i(23814),v=i(33976),j=i(80184);t.Z=(0,h.Z)((function(e){return(0,f.Z)((0,n.Z)((0,n.Z)({dateSelectorOverride:{height:40,border:"#EAEDEE 1px solid",marginLeft:15,backgroundColor:"#fff",padding:"0 16px",borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{borderColor:"#000","&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:600,color:"#393939"}},dateSelectorFilterOverride:{width:180,height:42,marginLeft:20,padding:0,borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{"&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:"bold",color:"#081C42"},"@media (max-width: 900px)":{width:103}},dateSelectorFormOverride:{width:"100%",maxWidth:840},parentDateOverride:{flexGrow:1},textBoxContainer:{flexGrow:1},openListIcon:{color:"#9D9E9D",width:8,marginTop:2},paperOverride:{"& .MuiCalendarPicker-root":{padding:"0 22px","& > div":{padding:0,"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type":{color:"#0A224C",fontWeight:"bold"},"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type":{color:"#9D9E9D","& + button.MuiButtonBase-root":{color:"#9D9E9D"}},"& > div:nth-child(2)":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"}}}},"& .MuiTypography-root.MuiTypography-caption":{width:26,height:26,margin:5,color:"#BCBCBC",fontSize:10},"& button.MuiPickersDay-root":{fontWeight:"bold",width:26,height:26,margin:5,textAlign:"center","&.Mui-selected":{backgroundColor:e.palette.primary.main,color:"#fff"}},"& div.MuiPickersDay-hiddenDaySpacingFiller":{width:26,height:26,margin:5},"& div.PrivatePickersSlideTransition-root":{minHeight:240},"& div.MuiCalendarPicker-viewTransitionContainer":{borderTop:"#F0F3F5 1px solid"},"& .MuiClockPicker-arrowSwitcher":{marginRight:10,marginTop:-1,"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"},"& + div > div":{width:255,height:255,backgroundColor:"#fff",marginTop:30,marginBottom:14,border:"#F0F3F5 3px solid","& > div:nth-child(2)":{backgroundColor:"#B4B5B4",width:12,height:12,"&::before":{content:"' '",width:35,height:35,display:"block",position:"absolute",border:"#F0F3F5 3px solid",top:-12,left:-12,borderRadius:"100%"}},"& > div:nth-child(3)":{backgroundColor:"#B4B5B4",width:4},"& > div:last-of-type":{marginTop:15,"& > span":{color:"#0A224C","&.Mui-selected":{color:"#fff"},"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']":{fontWeight:"bold",fontSize:20,marginTop:-1}}}}}}},g.YI),g.Hr))}))((function(e){var t=e.value,i=e.onChange,f=e.classes,h=e.forSearchBlock,g=void 0!==h&&h,b=e.forFilterContained,y=void 0!==b&&b,Z=e.label,C=e.tooltip,w=void 0===C?"":C,S=e.required,E=e.id,N=e.disabled,I=void 0!==N&&N,F=e.noInputIcon,T=void 0!==F&&F,k=e.classNamePrefix,A=void 0===k?"":k,L=e.openPickerIcon,B={};T||(B={startAdornment:(0,j.jsx)(u.Z,{position:"start",children:(0,j.jsx)(p.Z,{})})}),y&&(B={endAdornment:(0,j.jsx)(u.Z,{position:"end",children:(0,j.jsx)(v.Z,{className:f.openListIcon})})});var R="".concat(A,"date-time-input ").concat(g?f.dateSelectorOverride:""," ").concat(y&&!g?f.dateSelectorFilterOverride:""),W=g?f.parentDateOverride:f.dateSelectorFormOverride,D=(0,j.jsx)(x._,{dateAdapter:c.Z,children:(0,j.jsx)(d.x,{value:t,onChange:i,InputProps:(0,n.Z)((0,n.Z)({},B),{},{className:R}),components:{OpenPickerIcon:L},label:"",className:W,disabled:I,renderInput:function(e){return(0,j.jsx)(l.Z,(0,n.Z)((0,n.Z)({id:E,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:f.paperOverride}})});if(g)return D;var z=y?"":f.fieldContainer;return(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(z," ").concat(A,"input-field-container "),children:[""!==Z&&(0,j.jsxs)(o.Z,{htmlFor:E,className:"".concat(f.inputLabel," ").concat(A,"input-label"),children:[(0,j.jsxs)("span",{children:[Z,S?"*":""]}),""!==w&&(0,j.jsx)("div",{className:f.tooltipContainer,children:(0,j.jsx)(s.Z,{title:w,placement:"top-start",children:(0,j.jsx)("div",{className:f.tooltip,children:(0,j.jsx)(m.Z,{})})})})]}),(0,j.jsx)("div",{className:"".concat(f.textBoxContainer," ").concat(A,"input-wrapper "),children:D})]})})}))},56028:function(e,t,i){var n=i(29439),a=i(1413),l=i(72791),r=i(60364),o=i(13400),s=i(55646),d=i(5574),c=i(65661),x=i(39157),u=i(11135),p=i(25787),f=i(23814),h=i(29823),m=i(28057),g=i(87995),v=i(80184);t.Z=(0,p.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))((function(e){var t=e.onClose,i=e.modalOpen,u=e.title,p=e.children,f=e.classes,j=e.wideLimit,b=void 0===j||j,y=e.noContentPadding,Z=e.titleIcon,C=void 0===Z?null:Z,w=(0,r.I0)(),S=(0,l.useState)(!1),E=(0,n.Z)(S,2),N=E[0],I=E[1],F=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,l.useEffect)((function(){w((0,g.MK)(""))}),[w]),(0,l.useEffect)((function(){if(F){if(""===F.message)return void I(!1);"error"!==F.type&&I(!0)}}),[F]);var T=b?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},k="";return F&&(k=F.detailedErrorMsg,(""===F.detailedErrorMsg||F.detailedErrorMsg.length<5)&&(k=F.message)),(0,v.jsxs)(d.Z,(0,a.Z)((0,a.Z)({open:i,classes:f},T),{},{scroll:"paper",onClose:function(e,i){"backdropClick"!==i&&t()},className:f.root,children:[(0,v.jsxs)(c.Z,{className:f.title,children:[(0,v.jsxs)("div",{className:f.titleText,children:[C," ",u]}),(0,v.jsx)("div",{className:f.closeContainer,children:(0,v.jsx)(o.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,v.jsx)(h.Z,{})})})]}),(0,v.jsx)(m.Z,{isModal:!0}),(0,v.jsx)(s.Z,{open:N,className:f.snackBarModal,onClose:function(){I(!1),w((0,g.MK)(""))},message:k,ContentProps:{className:"".concat(f.snackBar," ").concat(F&&"error"===F.type?f.errorSnackBar:"")},autoHideDuration:F&&"error"===F.type?1e4:5e3}),(0,v.jsx)(x.Z,{className:y?"":f.content,children:p})]}))}))},31300:function(e,t,i){i(72791);var n=i(64554),a=i(51047),l=i(80184);t.Z=function(e){var t=e.onlineCount,i=void 0===t?0:t,r=e.offlineCount,o=void 0===r?0:r,s=e.icon,d=void 0===s?null:s,c=e.label,x=void 0===c?"":c,u=e.okStatusText,p=void 0===u?"Online":u,f=e.notOkStatusText,h=void 0===f?"Offline":f;return(0,l.jsx)(n.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,l.jsxs)(n.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,l.jsx)(n.Z,{sx:{fontSize:"16px",fontWeight:600},children:x}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:i}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,l.jsx)(a.J$M,{}),(0,l.jsx)("div",{className:"stat-text",children:p})]})]}),(0,l.jsxs)(n.Z,{children:[(0,l.jsx)(n.Z,{className:"stat-value",children:o}),(0,l.jsxs)(n.Z,{sx:{display:"flex",alignItems:"center",marginTop:"8px","& .min-icon":{fill:"#C83B51"}},children:[(0,l.jsx)(a.J$M,{})," ",(0,l.jsx)("div",{className:"stat-text",children:h})]})]})]})]}),(0,l.jsx)(n.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:d})]})})}},879:function(e,t,i){i.d(t,{D_:function(){return r},Et:function(){return a},GJ:function(){return l},yh:function(){return n}});var n={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},a=function(e,t){return e<=t/2?n.RED:2!==t&&e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0},l=function(e){switch(e){case"offline":return n.RED;case"online":return n.GREEN;default:return n.YELLOW}},r=function(e,t){return e<=t/2?n.RED:e===t/2+1?n.YELLOW:e===t?n.GREEN:void 0}},21182:function(e,t,i){i.r(t),i.d(t,{default:function(){return ft}});var n,a=i(29439),l=i(1413),r=i(72791),o=i(60364),s=i(26181),d=i.n(s),c=i(93433),x=i(61889),u=i(11135),p=i(25787),f=i(64554),h=i(23814);!function(e){e.singleValue="singleValue",e.linearGraph="linearGraph",e.areaGraph="areaGraph",e.barChart="barChart",e.pieChart="pieChart",e.singleRep="singleRep",e.simpleWidget="simpleWidget"}(n||(n={}));var m=i(45248),g=i(51846),v=i(82332),j=i(51047),b=i(80184),y=["#C4D4E9","#DCD1EE","#D1EEE7","#EEDED1","#AAF38F","#F9E6C5","#C83B51","#F4CECE","#D6D6D6"],Z=function(e){return(0,m.v1)(e,"ns")},C=function(e){return parseInt(e).toString(10)},w=[{id:1,title:"Uptime",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(j.oNq,{}),labelDisplayFunction:m.v1},{id:50,title:"Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:51,title:"Usable Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:n.pieChart,innerLabel:"N/A",labelDisplayFunction:m.ae},{id:68,title:"Data Usage Growth",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.areaGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:52,title:"Object size distribution",data:[],widgetConfiguration:[{dataKey:"a",color:"#2781B0",background:{fill:"#EEF1F4"},greatestColor:"#081C42"}],customStructure:[{originTag:"LESS_THAN_1024_B",displayTag:"Less than 1024B"},{originTag:"BETWEEN_1024_B_AND_1_MB",displayTag:"Between 1024B and 1MB"},{originTag:"BETWEEN_1_MB_AND_10_MB",displayTag:"Between 1MB and 10MB"},{originTag:"BETWEEN_10_MB_AND_64_MB",displayTag:"Between 10MB and 64MB"},{originTag:"BETWEEN_64_MB_AND_128_MB",displayTag:"Between 64MB and 128MB"},{originTag:"BETWEEN_128_MB_AND_512_MB",displayTag:"Between 128MB and 512MB"},{originTag:"GREATER_THAN_512_MB",displayTag:"Greater than 512MB"}],type:n.barChart},{id:66,title:"Buckets",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:44,title:"Objects",data:[],innerLabel:"N/A",type:n.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:63,title:"API Data Received Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000",strokeWidth:3}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:61,title:"Total Open FDs",data:[],innerLabel:"N/A",type:n.singleRep,color:"#22B573",fillColor:"#A6E8C4"},{id:62,title:"Total Goroutines",data:[],innerLabel:"N/A",type:n.singleRep,color:"#F7655E",fillColor:"#F4CECE"},{id:77,title:"Node CPU Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:60,title:"API Request Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:70,title:"API Data Sent Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:17,title:"Internode Data Transfer",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:73,title:"Node IO",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:m.ae,xAxisFormatter:m.Ue},{id:80,title:"Time Since Last Heal Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(g.Z,{}),labelDisplayFunction:Z},{id:81,title:"Time Since Last Scan Activity",data:"N/A",type:n.simpleWidget,widgetIcon:(0,b.jsx)(v.Z,{}),labelDisplayFunction:Z},{id:71,title:"API Request Error Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue},{id:76,title:"Node Memory Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:74,title:"Drive Used Capacity",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,xAxisFormatter:m.Ue,yAxisFormatter:m.ae},{id:82,title:"Drives Free Inodes",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,disableYAxis:!0,xAxisFormatter:m.Ue},{id:11,title:"Node Syscalls",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:8,title:"Node File Descriptors",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:n.linearGraph,yAxisFormatter:C,xAxisFormatter:m.Ue},{id:500,mergedPanels:[{id:53,title:"Online",data:"N/A",type:n.singleValue},{id:69,title:"Offline",data:"N/A",type:n.singleValue}],title:"Servers"},{id:501,mergedPanels:[{id:9,title:"Online",data:"N/A",type:n.singleValue},{id:78,title:"Offline",data:"N/A",type:n.singleValue}],title:"Drives"},{id:502,mergedPanels:[{id:65,title:"Upload",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae},{id:64,title:"Download",data:"N/A",type:n.singleValue,labelDisplayFunction:m.ae}],title:"Network"}],S=function(e,t){if(0===e.length)return["","0"];if("mean"===t){var i=e.reduce((function(e,t){return e+parseFloat(t[1])}),0);return["",Math.floor(i/e.length).toString()]}var n=e.sort((function(e,t){return e[0]-t[0]}));return n[n.length-1]},E=function(e,t){if(!e)return t;var i=e.type;switch(t.type){case n.singleValue:case n.simpleWidget:if("stat"===i||"singlestat"===i){var a=d()(e,"targets[0].result[0].values",[]);null===a&&(a=[]);var r=d()(e,"options.reduceOptions.calcs[0]","lastNotNull"),o=S(a,r),s=t.labelDisplayFunction?t.labelDisplayFunction(o[1]):o[1];return(0,l.Z)((0,l.Z)({},t),{},{data:s})}break;case n.pieChart:if("gauge"===i){var c=d()(e,"options.reduceOptions.calcs[0]","lastNotNull"),x=d()(e,"targets",[]).filter((function(e){return null!==e})),u=x.map((function(e){var t=(e.result&&Array.isArray(e.result)?e.result:[]).map((function(t){var i=d()(t,"values",[]),n=Object.keys(t.metric),a=i.sort((function(e,t){return parseInt(e[0][1])-parseInt(t[0][1])})),l=t.metric[n[0]],r=a[a.length-1];return{name:l,value:parseInt(r[1]),legend:e.legendFormat}}));return t})),p=x[0].result&&x[0].result.length>0?x[0].result[0].values:[],f=S(p,c),h=t.labelDisplayFunction?t.labelDisplayFunction(f[1]):f[1];return(0,l.Z)((0,l.Z)({},t),{},{data:u,innerLabel:h})}break;case n.linearGraph:case n.areaGraph:if("graph"===i){var g=d()(e,"targets",[]);null===g&&(g=[]);var v=[],j=[];g.forEach((function(e,t){var i=d()(e,"result",[]),n=e.legendFormat;null===i&&(i=[]),i.forEach((function(e){var i=function(e,t){var i=Object.keys(e),n=new RegExp("{{(".concat(i.join("|"),")}}"),"g"),a=t.replace(n,(function(t){var i=t.replace(/({{|}})/g,"");return e[i]})),l=(a.match(/{{/g)||[]).length,r=(a.match(/}}/g)||[]).length,o=a.replace(/{{(.*?)}}/g,"");return l===r&&0!==l&&0!==r&&(i.forEach((function(t){a=a.replace(t,e[t])})),o=a),o}(e.metric,n),a="key_".concat(t).concat(i);v.push({dataKey:a,keyLabel:i,lineColor:"",fillColor:""});var l=d()(e,"values",[]);null===l&&(l=[]),l.forEach((function(e){var t=j.findIndex((function(t){return t.name===e[0]}));if(-1===t){var i={name:e[0]};i[a]=e[1],j.push(i)}else j[t][a]=e[1]}))}))}));var b=v.sort((function(e,t){return e.keyLabelt.keyLabel?1:0})).map((function(e,t){return(0,l.Z)((0,l.Z)({},e),{},{lineColor:y[t]||(0,m.C5)(e.keyLabel),fillColor:y[t]||(0,m.C5)(e.keyLabel)})})),Z=j.sort((function(e,t){return e.name-t.name}));return(0,l.Z)((0,l.Z)({},t),{},{widgetConfiguration:b,data:Z})}break;case n.barChart:if("bargauge"===i){var C=d()(e,"targets[0].result",[]);null===C&&(C=[]);var w=function(e,t){return e[0]-t[0]},E=[];return E=t.customStructure?t.customStructure.map((function(e){var t=C.find((function(t){var i=Object.keys(t.metric);return t.metric[i[0]]===e.originTag})),i=d()(t,"values",[]).sort(w),n=i[i.length-1]||["","0"];return{name:e.displayTag,a:parseInt(n[1])}})):C.map((function(e){var t=Object.keys(e.metric),i=e.metric[t[0]],n=d()(e,"values",[]).sort(w),a=n[n.length-1]||["","0"];return{name:i,a:parseInt(a[1])}})),(0,l.Z)((0,l.Z)({},t),{},{data:E})}break;case n.singleRep:if("stat"===i){var N=d()(e,"targets[0].result[0].values",[]);null===N&&(N=[]);var I=d()(e,"options.reduceOptions.calcs[0]","lastNotNull"),F=S(N,I),T=N.sort((function(e,t){return e[0]-t[0]})),k=[];1===T.length&&k.push({value:0}),T.forEach((function(e){k.push({value:parseInt(e[1])})}));var A=t.labelDisplayFunction?t.labelDisplayFunction(F[1]):F[1];return(0,l.Z)((0,l.Z)({},t),{},{data:k,innerLabel:A})}}return t},N=function(e){var t=e.split(" "),i=function(){var t=e;return isNaN(parseFloat(e))||(t=(0,m.nk)(parseFloat(e))),(0,b.jsx)(r.Fragment,{children:t})};return 2!==t.length?i():m.Dl.includes(t[1])?(0,b.jsxs)("span",{className:"commonValue",children:[t[0],(0,b.jsx)("span",{className:"unitText",children:t[1]})]}):i()},I=i(19847),F=i(81207),T=i(72455),k=i(18073),A=i(43896),L=(0,T.Z)({tabRoot:{height:"40px",borderBottom:"1px solid #eaeaea"},root:{width:"120px",backgroundColor:"transparent",paddingTop:0,paddingBottom:0,fontSize:"14px",fontWeight:600,color:"#07193E",height:"40px"},selected:{"&.MuiTab-selected":{backgroundColor:"#F6F7F7 !important"},"&.MuiTab-wrapper":{color:"#07193E",fontWeight:600}},indicator:{background:"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;",height:2},scroller:{maxWidth:1185,position:"relative","&::after":{content:'" "',backgroundColor:"#EEF1F4",height:2,width:"100%",display:"block"}}}),B=function(e){var t=e.selectedTab,i=e.onChange,n=e.tabOptions,a=L();return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(k.Z,{indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",value:t,onChange:function(e,t){i(t)},classes:{root:a.tabRoot,indicator:a.indicator,scroller:a.scroller},children:n.map((function(e,t){var i={label:e.label};return e.value&&(i=(0,l.Z)((0,l.Z)({},i),{},{value:e.value})),e.disabled&&(i=(0,l.Z)((0,l.Z)({},i),{},{disabled:e.disabled})),(0,r.createElement)(A.Z,(0,l.Z)((0,l.Z)({},i),{},{classes:{root:a.root,selected:a.selected},id:"simple-tab-".concat(t),"aria-controls":"simple-tabpanel-".concat(t),key:"tab-".concat(t,"-").concat(e.label)}))}))})})},R=i(19913),W=i(38725),D=i(90466),z=i(12891),P=i(24714),M=i(41048),O=i(35667),G=i(95193),U=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.barChartConfiguration,l=e.classes;return t?(0,b.jsxs)("div",{className:l.customTooltip,children:[(0,b.jsx)("div",{className:l.timeStampTitle,children:n}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:l.labelContainer,children:[(0,b.jsx)("div",{className:l.labelColor,style:{backgroundColor:a[t].color}}),(0,b.jsx)("div",{className:l.itemValue,children:(0,b.jsx)("span",{className:l.valueContainer,children:e.value})})]},"pltiem-".concat(t,"-").concat(n))}))]}):null})),_=i(29598),K=i(72401),V=i(64119),H=i(71080),$=function(e){var t=e.panelItem,i=(0,o.I0)();return(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"10px","& .link-text":{color:"#2781B0",fontSize:"12px",fontWeight:600},"& .zoom-graph-icon":{backgroundColor:"transparent",border:0,padding:0,cursor:"pointer","& svg":{color:"#D0D0D0",height:16},"&:hover":{"& svg":{color:"#404143"}}}},children:[(0,b.jsx)("a",{href:"void:(0);",rel:"noreferrer noopener",className:"link-text",onClick:function(e){e.preventDefault(),i((0,H.xG)(t))},children:"Expand Graph"}),(0,b.jsx)("button",{onClick:function(){i((0,H.xG)(t))},className:"zoom-graph-icon",children:(0,b.jsx)(V.Z,{})})]})},Y=i(87995),J=function(e){var t=e.y,i=e.payload;return(0,b.jsx)("text",{width:50,fontSize:"69.7%",textAnchor:"start",fill:"#333",transform:"translate(5,".concat(t,")"),fontWeight:400,dy:3,children:i.value})},q=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{loadingAlign:{width:"100%",paddingTop:"15px",textAlign:"center",margin:"auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.panelItem,l=e.timeStart,s=e.timeEnd,d=e.propLoading,c=e.apiPrefix,x=e.zoomActivated,u=void 0!==x&&x,p=(0,o.I0)(),f=(0,r.useState)(!0),h=(0,a.Z)(f,2),m=h[0],g=h[1],v=(0,r.useState)([]),j=(0,a.Z)(v,2),y=j[0],Z=j[1],C=(0,r.useState)(null),w=(0,a.Z)(C,2),S=w[0],N=w[1];(0,r.useEffect)((function(){d&&g(!0)}),[d]),(0,r.useEffect)((function(){if(m){var e=0;if(null!==l&&null!==s){var t=s.unix()-l.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(c,"/info/widgets/").concat(n.id,"/?step=").concat(e,"&").concat(null!==l?"&start=".concat(l.unix()):"").concat(null!==l&&null!==s?"&":"").concat(null!==s?"end=".concat(s.unix()):"")).then((function(e){var t=E(e,n);Z(t.data),N(t),g(!1)})).catch((function(e){p((0,Y.Ih)(e)),g(!1)}))}}),[m,n,s,l,p,c]);var I=S?S.widgetConfiguration:[],T=0,k=0;if(1===I.length){var A=I[0];y.forEach((function(e,t){e[A.dataKey]>k&&(k=e[A.dataKey],T=t)}))}var L=(0,_.Z)(),B=(0,G.Z)(L.breakpoints.up("md"));return(0,b.jsxs)("div",{className:u?"":t.singleValueContainer,children:[!u&&(0,b.jsxs)("div",{className:t.titleContainer,children:[i," ",(0,b.jsx)($,{panelItem:n})]}),m&&(0,b.jsx)("div",{className:t.loadingAlign,children:(0,b.jsx)(K.Z,{})}),!m&&(0,b.jsx)("div",{className:u?t.zoomChartCont:t.contentContainer,children:(0,b.jsx)(R.h,{width:"99%",children:(0,b.jsxs)(W.v,{data:y,layout:"vertical",barCategoryGap:1,children:[(0,b.jsx)(D.K,{type:"number",hide:!0}),(0,b.jsx)(z.B,{dataKey:"name",type:"category",interval:0,tick:(0,b.jsx)(J,{}),tickLine:!1,axisLine:!1,width:150,hide:!B,style:{fontSize:"12px",fontWeight:100}}),I.map((function(e){return(0,b.jsx)(P.$,{dataKey:e.dataKey,fill:e.color,background:e.background,barSize:u?25:12,children:1===I.length?(0,b.jsx)(r.Fragment,{children:y.map((function(t,i){return(0,b.jsx)(M.b,{fill:i===T?e.greatestColor:e.color},"chart-bar-".concat(i.toString()))}))}):null},"bar-".concat(e.dataKey))})),(0,b.jsx)(O.u,{cursor:{fill:"rgba(255, 255, 255, 0.3)"},content:(0,b.jsx)(U,{barChartConfiguration:I})})]})})})]})})),Q=i(37762),X=i(28265),ee=i(82839),te=i(18602),ie=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.Rp))}))((function(e){var t=e.active,i=e.payload,n=e.label,a=e.linearConfiguration,l=e.yAxisFormatter,r=e.classes;return t?(0,b.jsxs)("div",{className:r.customTooltip,children:[(0,b.jsx)("div",{className:r.timeStampTitle,children:(0,m.Ue)(n,!0)}),i&&i.map((function(e,t){return(0,b.jsxs)("div",{className:r.labelContainer,children:[(0,b.jsx)("div",{className:r.labelColor,style:{backgroundColor:a[t].lineColor}}),(0,b.jsx)("div",{className:r.itemValue,children:(0,b.jsxs)("span",{className:r.valueContainer,children:[a[t].keyLabel,":"," ",l(e.value)]})})]},"lbPl-".concat(t,"-").concat(a[t].keyLabel))}))]}):null})),ne=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{verticalAlignment:{flexDirection:"column"},chartCont:{position:"relative",height:140,width:"100%"},legendChart:{display:"flex",flexDirection:"column",flex:"0 1 auto",maxHeight:130,margin:0,overflowY:"auto",position:"relative",textAlign:"center",width:"100%",justifyContent:"flex-start",color:"#404143",fontWeight:"bold",fontSize:12},loadingAlign:{width:40,height:40,textAlign:"center",margin:"15px auto"}}))}))((function(e){var t=e.classes,i=e.title,n=e.timeStart,l=e.timeEnd,s=e.propLoading,d=e.panelItem,c=e.apiPrefix,x=e.hideYAxis,u=void 0!==x&&x,p=e.areaWidget,h=void 0!==p&&p,m=e.yAxisFormatter,g=void 0===m?function(e){return e}:m,v=e.xAxisFormatter,j=void 0===v?function(e){return e}:v,y=e.zoomActivated,Z=void 0!==y&&y,C=(0,o.I0)(),w=(0,r.useState)(!0),S=(0,a.Z)(w,2),N=S[0],I=S[1],T=(0,r.useState)([]),k=(0,a.Z)(T,2),A=k[0],L=k[1],B=(0,r.useState)(0),W=(0,a.Z)(B,2),P=W[0],M=W[1],U=(0,r.useState)(null),V=(0,a.Z)(U,2),H=V[0],J=V[1];(0,r.useEffect)((function(){s&&I(!0)}),[s]),(0,r.useEffect)((function(){if(N){var e=0;if(null!==n&&null!==l){var t=l.unix()-n.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(c,"/info/widgets/").concat(d.id,"/?step=").concat(e,"&").concat(null!==n?"&start=".concat(n.unix()):"").concat(null!==n&&null!==l?"&":"").concat(null!==l?"end=".concat(l.unix()):"")).then((function(e){var t=E(e,d);L(t.data),J(t),I(!1);var i,n=0,a=(0,Q.Z)(t.data);try{for(a.s();!(i=a.n()).done;){var l=i.value;for(var r in l)if("name"!==r){var o=parseInt(l[r]);isNaN(o)&&(o=0),n5&&void 0!==arguments[5]&&arguments[5];switch(e.type){case n.singleValue:return(0,b.jsx)(me,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.simpleWidget:var o,s=null;return 80===e.id?s=je:81===e.id?s=be:1===e.id&&(s=ye),[80,81,1].includes(e.id)&&(o=function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id,l=e.iconWidget;return(0,b.jsx)(s,{valueToRender:t,loading:i,title:n,id:a,iconWidget:l})}),(0,b.jsx)(se,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,iconWidget:e.widgetIcon,renderFn:o});case n.pieChart:return 50===e.id?(0,b.jsx)(de,{children:(0,b.jsx)(ge,{value:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l})}):(0,b.jsx)(re,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l});case n.linearGraph:case n.areaGraph:return(0,b.jsx)(ne,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,hideYAxis:e.disableYAxis,xAxisFormatter:e.xAxisFormatter,yAxisFormatter:e.yAxisFormatter,apiPrefix:l,areaWidget:e.type===n.areaGraph,zoomActivated:r});case n.barChart:return(0,b.jsx)(q,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,apiPrefix:l,zoomActivated:r});case n.singleRep:var d=e.fillColor?e.fillColor:e.color;return(0,b.jsx)(fe,{title:e.title,panelItem:e,timeStart:t,timeEnd:i,propLoading:a,color:e.color,fillColor:d,apiPrefix:l});default:return null}},Ce=i(56028),we=function(e){var t=e.value,i=e.modalOpen,n=e.timeStart,a=e.timeEnd,l=e.apiPrefix,s=(0,o.I0)();return t?(0,b.jsx)(Ce.Z,{title:t.title,onClose:function(){s((0,H.jv)())},modalOpen:i,wideLimit:!1,noContentPadding:!0,children:(0,b.jsx)(r.Fragment,{children:Ze(t,n,a,!0,l,!0)})}):null},Se=i(63856),Ee=[{sx:{minWidth:0,display:"grid",gridTemplateColumns:{md:"1fr 1fr 1fr 1fr",sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:66},{componentId:44},{componentId:500},{componentId:501}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:50},{componentId:502}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{md:"1fr 1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:80},{componentId:81},{componentId:1}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:68},{componentId:52}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:63},{componentId:70}]}],Ne=[{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:60}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"30px"},columns:[{componentId:71,sx:{flex:1,width:"50%",flexShrink:0}},{componentId:17,sx:{flex:1,width:"50%",flexShrink:0}}]},{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},columns:[{componentId:73}]}],Ie=[{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:76},{componentId:77}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:11},{componentId:8}]},{sx:{display:"grid",minWidth:0,gridTemplateColumns:"1fr 1fr",gap:"30px"},columns:[{componentId:82},{componentId:74}]}],Fe=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"30px"},children:t})},Te=i(57621),ke=i(9585),Ae=i(91523),Le=(0,T.Z)({root:{backgroundColor:"#fff",padding:0},title:(0,l.Z)({},h.NP.titleContainer),content:{maxWidth:"100%"}}),Be=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},h.NP),{},{cardRoot:(0,l.Z)((0,l.Z)({},h.NP.singleValueContainer),{},{"&.MuiPaper-root":{borderRadius:10}}),metricText:{fontSize:70,lineHeight:1.1,color:"#07193E",fontWeight:"bold"},unitText:{fontSize:10,color:"#767676",fontWeight:"normal"},subHearderContainer:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center"},subMessage:{fontSize:10,color:"#767676","&.bold":{fontWeight:"bold"}},headerContainer:{display:"flex",justifyContent:"space-between"},viewAll:{fontSize:10,color:"#C83B51",textTransform:"capitalize","& a, & a:hover, & a:visited, & a:active":{color:"#C83B51"}},extraMargin:{margin:"10px 20px 10px 0"}}))}))((function(e){var t=e.title,i=e.metricValue,n=e.metricUnit,a=e.subMessage,l=e.moreLink,o=e.rightComponent,s=e.extraMargin,d=void 0!==s&&s,c=e.classes,x=Le(),u=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.subHearderContainer,children:[(0,b.jsxs)("div",{className:c.leftSide,children:[(0,b.jsx)("div",{children:(0,b.jsxs)("span",{className:c.metricText,children:[i,(0,b.jsx)("span",{className:c.unitText,children:n})]})}),a&&(0,b.jsx)("div",{className:"".concat(c.subMessage," ").concat(a.fontWeight?a.fontWeight:""),children:a.message})]}),(0,b.jsx)("div",{className:c.rightSide,children:o})]})})},p=function(){return(0,b.jsx)(r.Fragment,{children:(0,b.jsxs)("div",{className:c.headerContainer,children:[(0,b.jsx)("span",{className:c.title,children:t}),l&&(0,b.jsx)(r.Fragment,{children:(0,b.jsx)("span",{className:c.viewAll,children:(0,b.jsx)(Ae.rU,{to:l,children:"View All"})})})]})})};return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(Te.Z,{className:"".concat(c.cardRoot," ").concat(d?c.extraMargin:""),children:""!==i&&(0,b.jsx)(ke.Z,{title:(0,b.jsx)(p,{}),subheader:(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(u,{})}),classes:{root:x.root,title:x.title,content:x.content}})})})})),Re=function(e){var t=e.title,i=e.leftComponent,n=e.rightComponent;return(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(Be,{title:t,metricValue:i,rightComponent:n})})},We=function(e){var t=e.panelItem,i=e.timeStart,n=e.timeEnd,l=e.propLoading,s=e.apiPrefix,d=e.statLabel,c=(0,o.I0)(),x=(0,r.useState)(!0),u=(0,a.Z)(x,2),p=u[0],h=u[1],m=(0,r.useState)(""),g=(0,a.Z)(m,2),v=g[0],j=g[1];return(0,r.useEffect)((function(){l&&h(!0)}),[l]),(0,r.useEffect)((function(){if(p){var e=0;if(null!==i&&null!==n){var a=n.unix()-i.unix(),l=Math.floor(a/60);e=l<1?15:l}F.Z.invoke("GET","/api/v1/".concat(s,"/info/widgets/").concat(t.id,"/?step=").concat(e,"&").concat(null!==i?"&start=".concat(i.unix()):"").concat(null!==i&&null!==n?"&":"").concat(null!==n?"end=".concat(n.unix()):"")).then((function(e){var i=E(e,t);j(i.data),h(!1)})).catch((function(e){c((0,Y.Ih)(e)),h(!1)}))}}),[p,t,n,i,c,s]),p?(0,b.jsx)(f.Z,{sx:{width:"100%",paddingTop:"5px",textAlign:"center",margin:"auto"},children:(0,b.jsx)(K.Z,{style:{width:12,height:12}})}):(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{className:"stat-value",children:v}),d]})},De=function(e){var t=e.statItemLeft,i=void 0===t?null:t,n=e.statItemRight,a=void 0===n?null:n,l=e.icon,r=void 0===l?null:l,o=e.label,s=void 0===o?"":o;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"321px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:s}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",gap:"5px",justifyContent:"space-between",paddingBottom:{md:"0px",xs:"10px"},fontSize:{xl:"55px",lg:"50px",md:"45px",xs:"35px"},flexFlow:"row",fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px",marginTop:"8px"},"& .stat-value":{textAlign:"center",height:"50px"},"& .min-icon":{marginRight:"8px",marginTop:"8px",height:"10px",width:"10px"}},children:[i,a]})]}),(0,b.jsx)(f.Z,{sx:{width:"20px",height:"20px",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:r})]})})},ze=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.id,c=(0,a.Z)(s,2),x=c[0],u=c[1],p=(0,b.jsx)(We,{panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#4CCB92"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Online"})]})}),h=(0,b.jsx)(We,{panelItem:u,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,statLabel:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"5px","& .min-icon":{fill:"#C83B51"}},children:[(0,b.jsx)(j.J$M,{}),(0,b.jsx)("div",{className:"stat-text",children:"Offline"})]})}),m=null,g="";return 500===d?(m=(0,b.jsx)(j.SBZ,{}),g="Servers"):501===d&&(m=(0,b.jsx)(j.FU8,{}),g="Drives"),(0,b.jsx)(De,{statItemLeft:p,statItemRight:h,icon:m,label:g})},Pe=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",marginTop:"10px",gap:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#4ccb92"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969"},children:"GET"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.vUj,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Me=function(e){var t=e.value,i=e.loading;return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"10px",alignItems:"center",marginTop:"10px","& .min-icon":{height:"15px",width:"15px",fill:"#2781b0"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"18px",color:"#696969",fontWeight:"normal"},children:"PUT"}),i?(0,b.jsx)(K.Z,{style:{width:"15px",height:"15px"}}):(0,b.jsx)(j.Uxq,{})]}),(0,b.jsx)(f.Z,{sx:{fontSize:"50px",fontFamily:"Lato",fontWeight:600},children:t})]})},Oe=function(e){var t=e.value,i=e.timeStart,n=e.timeEnd,l=e.propLoading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=(0,a.Z)(s,2),c=d[0],x=d[1],u=(0,b.jsx)(me,{title:t.title,panelItem:c,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Me,{value:t,loading:i,title:n,id:a})}}),p=(0,b.jsx)(me,{title:t.title,panelItem:x,timeStart:i,timeEnd:n,propLoading:l,apiPrefix:r,renderFn:function(e){var t=e.valueToRender,i=e.loading,n=e.title,a=e.id;return(0,b.jsx)(Pe,{value:t,loading:i,title:n,id:a})}});return(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"},gap:"15px","& .unitText":{fontSize:"14px",color:"#5E5E5E",marginLeft:"5px"}},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:"Network"}),(0,b.jsx)(f.Z,{sx:{position:"relative",width:110,height:110,marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{position:"absolute",display:"flex",flexFlow:"column",alignItems:"center",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:p})}),(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",marginLeft:{sm:"auto",xs:""}},children:(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center","& .value":{fontSize:"50px",fontFamily:"Lato"},"& .unit":{color:"#5E5E5E",fontSize:"18px",marginLeft:"12px",marginTop:"10px"}},children:u})}),(0,b.jsx)(f.Z,{sx:{marginLeft:"15px",height:"100%",display:"flex",alignItems:"flex-start","& .min-icon":{height:"15px",width:"15px"}},children:(0,b.jsx)(j.QBB,{})})]})},Ge=function(e){var t=e.info,i=e.timeStart,n=e.timeEnd,l=e.loading,r=e.apiPrefix,o=t.mergedPanels,s=void 0===o?[]:o,d=t.title,c=void 0===d?"":d,x=t.id,u=(0,a.Z)(s,2),p=u[0],f=u[1];return[500,501].includes(x)?(0,b.jsx)(de,{children:(0,b.jsx)(ze,{info:t,timeStart:i,timeEnd:n,loading:l,apiPrefix:r})}):502===x?(0,b.jsx)(de,{children:(0,b.jsx)(Oe,{apiPrefix:r,timeEnd:n,timeStart:i,value:t,propLoading:l})}):(0,b.jsx)(Re,{title:c,leftComponent:Ze(p,i,n,l,r),rightComponent:Ze(f,i,n,l,r)})},Ue=i(74794),_e=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},h.OR),h.bN),{},{dashboardRow:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap"}}))}))((function(e){var t=e.apiPrefix,i=void 0===t?"admin":t,n=(0,o.I0)(),l=(0,o.v9)((function(e){return e.dashboard.zoom.openZoom})),s=(0,o.v9)((function(e){return e.dashboard.zoom.widgetRender})),d=(0,r.useState)(null),u=(0,a.Z)(d,2),p=u[0],h=u[1],m=(0,r.useState)(null),g=(0,a.Z)(m,2),v=g[0],j=g[1],y=(0,r.useState)(!0),Z=(0,a.Z)(y,2),C=Z[0],S=Z[1],N=(0,r.useState)(w),T=(0,a.Z)(N,2),k=T[0],A=T[1],L=(0,r.useState)(0),R=(0,a.Z)(L,2),W=R[0],D=R[1],z=(0,r.useCallback)((function(){var e=0;if(null!==p&&null!==v){var t=v.unix()-p.unix(),a=Math.floor(t/60);e=a<1?15:a}F.Z.invoke("GET","/api/v1/".concat(i,"/info?step=").concat(e,"&").concat(null!==p?"&start=".concat(p.unix()):"").concat(null!==p&&null!==v?"&":"").concat(null!==v?"end=".concat(v.unix()):"")).then((function(e){if(e.widgets){var t=(i=e.widgets,w.map((function(e){var t=i.find((function(t){return t.title.toLowerCase().trim()===e.title.toLowerCase().trim()}));return E(t,e)})));A(t)}else n((0,Y.Ih)({errorMessage:"Widget information could not be retrieved at this time. Please try again",detailedError:""}));var i;S(!1)})).catch((function(e){n((0,Y.Ih)(e)),S(!1)}))}),[p,v,n,i]);(0,r.useEffect)((function(){C&&z()}),[C,z]);var P=function(e){return e.reduce((function(e,t,n){var a=t.columns,l=(void 0===a?[]:a).map((function(e,t){var a;return function(e,t){return(0,b.jsx)(r.Fragment,{children:e?(0,b.jsx)(r.Fragment,{children:e.mergedPanels?(0,b.jsx)(Ge,{info:e,timeStart:p,timeEnd:v,loading:C,apiPrefix:i}):Ze(e,p,v,C,i)}):null},"widget-".concat(t))}((a=e.componentId,k.find((function(e){return e.id===a}))),"".concat(n,"-").concat(t))})),o=(0,b.jsx)(f.Z,{sx:t.sx,children:l},"layout-row-".concat(n));return[].concat((0,c.Z)(e),[o])}),[])};return(0,b.jsxs)(Ue.Z,{children:[l&&(0,b.jsx)(we,{modalOpen:l,timeStart:p,timeEnd:v,widgetRender:0,value:s,apiPrefix:i}),(0,b.jsx)(x.ZP,{item:!0,xs:12,children:(0,b.jsx)(B,{selectedTab:W,onChange:function(e){D(e)},tabOptions:[{label:"Usage"},{label:"Traffic"},{label:"Resources"}]})}),(0,b.jsxs)(x.ZP,{item:!0,xs:12,sx:{paddingTop:"20px"},children:[(0,b.jsx)(f.Z,{sx:{marginBottom:"20px"},children:(0,b.jsx)(Se.Z,{timeStart:p,setTimeStart:h,timeEnd:v,setTimeEnd:j,triggerSync:function(){S(!0)}})}),(0,b.jsx)(I.x,{index:0,value:W,children:(0,b.jsx)(Fe,{children:k.length?P(Ee):null})}),(0,b.jsx)(I.x,{index:1,value:W,children:(0,b.jsx)(Fe,{children:k.length?P(Ne):null})}),(0,b.jsx)(I.x,{index:2,value:W,children:(0,b.jsx)(Fe,{children:k.length?P(Ie):null})})]})]})})),Ke=i(32291),Ve=i(40986),He=i(23804),$e=i(31300),Ye=i(98444),Je=i.n(Ye),qe=i(79834),Qe=i(90493),Xe=i(76278),et=i(56125),tt=i(879),it=function(e){var t=e.label,i=void 0===t?"":t,n=e.value,a=void 0===n?"":n,l=e.statusColor,r=void 0===l?"":l,o=e.hasStatus,s=void 0!==o&&o;return(0,b.jsx)(f.Z,{sx:{alignItems:"baseline",padding:"5px",display:"flex",gap:"5px"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column","& .stat-text":{color:"#5E5E5E",fontSize:"12px"},"& .stat-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsxs)("div",{className:"stat-value",children:[a," ",(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column",marginLeft:"5px",maxWidth:"40px","&:first-of-type(svg)":{fill:"#848484"}},children:s?(0,b.jsx)(f.Z,{sx:{marginRight:"0px",justifyContent:"center",alignItems:"center",textAlign:"center","& svg.min-icon":{fill:r,width:"10px",height:"10px"}},children:(0,b.jsx)(j.J$M,{})}):(0,b.jsx)(f.Z,{sx:{width:"12px",height:"12px"}})})]}),(0,b.jsx)("div",{className:"stat-text",children:i})]})})},nt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.server,i=Object.keys(d()(t,"network",{})),n=i.length,a=t.drives?t.drives.length:0,l=i.reduce((function(e,i){return"online"===t.network[i]?e+1:e}),0),r=t.drives?t.drives.filter((function(e){return"ok"===e.state})).length:0;return(0,b.jsx)(f.Z,{sx:{display:"flex",alignItems:"flex-start",flexFlow:"column",flex:1},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",padding:"3px",gap:"15px",justifyContent:"space-between",width:"100%",paddingLeft:"20px",flexFlow:{sm:"row",xs:"column"}},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,b.jsx)(f.Z,{sx:{fontWeight:600,textTransform:"none"},children:t.endpoint||""}),(null===t||void 0===t?void 0:t.state)&&(0,b.jsx)(f.Z,{sx:{marginLeft:"8px","& .min-icon":{fill:(0,tt.GJ)(t.state),height:"14px",width:"14px"}},children:(0,b.jsx)(j.J$M,{})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",flex:"1.5",gap:{md:"5%",xs:"5%"}},children:[(0,b.jsx)(it,{statusColor:(0,tt.Et)(r,a),label:"Drives",hasStatus:!0,value:"".concat(r,"/").concat(a)}),(0,b.jsx)(it,{statusColor:(0,tt.D_)(l,n),label:"Network",hasStatus:!0,value:"".concat(l,"/").concat(n)}),(0,b.jsx)(it,{statusColor:"green",label:"Up time",value:null!==t&&void 0!==t&&t.uptime?(0,m.v1)(t.uptime):"N/A"})]}),(0,b.jsx)(it,{statusColor:"green",label:"",value:(0,b.jsxs)(f.Z,{sx:{background:"rgb(235, 236, 237)",color:"#000000",paddingLeft:"10px",paddingRight:"10px",borderRadius:"2px",fontSize:"12px",marginTop:"5px","& .label":{fontWeight:600,marginRight:"3px"}},children:[(0,b.jsx)("span",{className:"label",children:"Version:"}),t.version?t.version:"N/A"]})})]})})})),at=function(e){switch(e){case"offline":return tt.yh.RED;case"ok":return tt.yh.GREEN;default:return tt.yh.YELLOW}},lt=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},h.SJ))}))((function(e){var t=e.drive,i=[{value:t.totalSpace-t.usedSpace,color:"#D6D6D6",label:"Free Space"},{value:t.usedSpace,color:(0,m.hn)(t.usedSpace,t.totalSpace),label:"Used Space"}];return(0,b.jsx)(f.Z,{sx:{display:"flex",flex:1,alignItems:"center",paddingBottom:"10px",padding:"20px",border:"1px solid #eaeaea"},children:(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",marginLeft:"10px",flex:1},children:[(0,b.jsxs)(f.Z,{sx:{fontSize:"14px",fontWeight:400,display:"flex",alignItems:"center","& .min-icon":{marginRight:"10px",height:"10px",width:"10px",fill:at(t.state),flexShrink:0},"& .drive-endpoint":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all",marginRight:"8px",fontWeight:600,fontSize:{md:"16px",xs:"10px"}}},children:[(0,b.jsx)("div",{className:"drive-endpoint",children:t.endpoint||""}),t.state&&(0,b.jsx)(j.J$M,{})]}),(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",alignItems:"center",paddingLeft:"20px",marginTop:"10px",flexFlow:{sm:"row",xs:"column"},"& .info-label":{color:"#5E5E5E",fontSize:"12px",textAlign:"center"},"& .info-value":{fontSize:"18px",color:"#07193E",display:"flex",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:[(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,b.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:(0,m.l5)(t.usedSpace)}),(0,b.jsx)("div",{children:(0,b.jsx)(ae.u,{width:110,height:110,children:(0,b.jsx)(le.b,{data:i,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,startAngle:-70,endAngle:360,animationDuration:1,children:i.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})]})}),(0,b.jsxs)(f.Z,{sx:{display:"flex",gap:"5%",alignItems:"center",flex:2,flexGrow:1},children:[(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.totalSpace?t.totalSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Capacity"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.usedSpace?t.usedSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Used"})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,b.jsx)("div",{className:"info-value",children:(0,m.ae)(t.availableSpace?t.availableSpace.toString():"0")}),(0,b.jsx)("label",{className:"info-label",children:"Available"})]})]})]})]})})})),rt=i(25183),ot=function(e){var t=e.data,i=r.useState(t.length>1?"":t[0].endpoint+"-0"),n=(0,a.Z)(i,2),l=n[0],o=n[1],s=function(e){o(e)};return(0,b.jsxs)(f.Z,{children:[(0,b.jsxs)(f.Z,{sx:{marginBottom:"10px"},children:["Servers (",t.length,")"]}),(0,b.jsx)(Qe.Z,{sx:{width:"100%",flex:1,padding:"0"},component:"nav","aria-labelledby":"nested-list-subheader",children:t.map((function(e,t){var i="".concat(e.endpoint,"-").concat(t),n=l===i;return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsxs)(Xe.Z,{disableRipple:!0,onClick:function(){s(n?"":i)},className:n?"expanded":"",sx:{display:"flex",alignItems:"center",justifyContent:"space-between",border:"1px solid #f1f1f1",padding:"3px 10px 3px 10px","&:hover":{background:"#bebbbb0d"}},children:[(0,b.jsx)(nt,{server:e,index:t}),(0,b.jsx)(f.Z,{sx:{height:"25px",width:"25px",background:"#FBFAFA",borderRadius:"2px","&:hover":{background:"#fafafa"},display:{md:"block",xs:"none"},"& .collapse-icon":{fill:"#494949","& g rect":{fill:"#ffffff"}},"& .expand-icon":{fill:"#494949","& rect":{fill:"#ffffff"}}},children:n?(0,b.jsx)(rt.cg,{className:"collapse-icon"}):(0,b.jsx)(rt.Ud,{className:"expand-icon"})})]}),n?(0,b.jsxs)(f.Z,{sx:{border:"1px solid #f1f1f1",borderTop:"0"},children:[(0,b.jsxs)(qe.Z,{component:"div",sx:{paddingLeft:"30px"},children:["Drives (",e.drives.length,")"]},"".concat(t,"-drive-details")),(0,b.jsx)(et.Z,{in:n,timeout:"auto",unmountOnExit:!0,sx:{width:"100%",flex:1,display:"flex",padding:{md:"15px 30px",xs:"10px 10px"},"& .MuiCollapse-wrapperInner":{display:"flex",flexFlow:"column",gap:"15px"}},children:e.drives.map((function(e,t){return(0,b.jsx)(lt,{drive:e},"".concat(e.endpoint,"-").concat(t))}))})]},"".concat(e.endpoint,"-").concat(t)):null]},i)}))})]})},st=function(e){var t=e.counterValue,i=e.label,n=void 0===i?"":i,a=e.icon,l=void 0===a?null:a,r=e.actions,o=void 0===r?null:r;e.loading;return(0,b.jsx)(f.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"300px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default",position:"relative",width:"100%"},children:(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",width:"100%",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"},position:"absolute"},children:[(0,b.jsxs)(f.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"8px",zIndex:10,overflow:"hidden"},children:[(0,b.jsx)(f.Z,{sx:{fontSize:"16px",fontWeight:600},children:n}),(0,b.jsx)(ce.Z,{title:t,placement:"bottom",enterDelay:500,children:(0,b.jsx)(f.Z,{sx:{fontSize:{xl:"55px",lg:"50px",md:"36px",sm:"35px",xs:"35px"},fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",maxWidth:{md:187,xs:200},flexFlow:{md:"row",xs:"column"}},children:t})})]}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",alignItems:"center",justifyContent:"flex-start",marginTop:"8px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:[l,(0,b.jsx)(f.Z,{children:o})]})]})})},dt=function(e){var t=e.usageValue,i=e.total,n=e.unit,a=[{value:i,color:"#D6D6D6",label:"Free Space"},{value:t,color:"#073052",label:"Used Space"}];return(0,b.jsxs)(f.Z,{sx:{maxHeight:"110px",display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"19px",padding:"10px","& .unit-value":{fontSize:"50px",color:"#07193E"},"& .unit-type":{fontSize:"18px",color:"#5E5E5E",marginTop:"20px",marginLeft:"5px"},"& .usage-label":{display:"flex",alignItems:"center",fontSize:"16px",fontWeight:600,marginRight:"20px",marginTop:"-10px","& .min-icon":{marginLeft:"10px",height:16,width:16}}},children:[(0,b.jsxs)(f.Z,{children:[(0,b.jsx)("div",{className:"usage-label",children:(0,b.jsx)("span",{children:"Reported Usage"})}),(0,b.jsx)(ce.Z,{title:"".concat(t," Bytes"),children:(0,b.jsx)("label",{className:"unit-value",style:{fontWeight:600},children:i})}),(0,b.jsx)("label",{className:"unit-type",children:n})]}),(0,b.jsx)(f.Z,{children:(0,b.jsx)(f.Z,{sx:{flex:1},children:(0,b.jsx)("div",{style:{position:"relative",width:105,height:105,top:"-8px"},children:(0,b.jsx)("div",{children:(0,b.jsx)(ae.u,{width:105,height:105,children:(0,b.jsx)(le.b,{data:a,cx:"50%",cy:"50%",dataKey:"value",outerRadius:45,innerRadius:35,startAngle:-70,endAngle:360,animationDuration:1,children:a.map((function(e,t){return(0,b.jsx)(M.b,{fill:e.color},"cellCapacity-".concat(t))}))})})})})})})]})},ct=i(40603),xt=i(56087),ut=function(e){var t=e.children;return(0,b.jsx)(f.Z,{sx:{border:"1px solid #f1f1f1",padding:{md:"15px",xs:"5px"},height:"136px",maxWidth:{sm:"100%"}},children:t})},pt=function(e){var t=e.usage,i=t&&t.usage?t.usage.toString():"0",n=function(e){return void 0===e?{total:"0",unit:"Mi"}:(0,m.Am)(e)}(i),a=t||{},l=a.lastScan,o=void 0===l?"n/a":l,s=a.lastHeal,d=void 0===s?"n/a":s,x=a.upTime,u=void 0===x?"n/a":x,p=function(e){return null!==e?e.servers.sort((function(e,t){var i=e.endpoint.toLowerCase(),n=t.endpoint.toLowerCase();return in?1:0})):[]}(t||null),h=[];p.forEach((function(e){var t=e.drives.map((function(e){return e}));h=[].concat((0,c.Z)(h),(0,c.Z)(t))}));var g=Je()(p,"state"),v=g.offline,y=void 0===v?[]:v,Z=g.online,C=void 0===Z?[]:Z,w=Je()(h,"state"),S=w.offline,E=void 0===S?[]:S,N=w.ok,I=void 0===N?[]:N;return(0,b.jsx)(f.Z,{sx:{maxWidth:"1536px",margin:"auto"},children:(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"1fr",gap:"27px",marginBottom:"40px",marginTop:"40px",marginLeft:"40px",marginRight:"40px"},children:[(0,b.jsxs)(f.Z,{children:[(null===t||void 0===t?void 0:t.prometheusNotReady)&&(0,b.jsx)(He.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can't retrieve advanced metrics at this time",help:(0,b.jsxs)(r.Fragment,{children:["MinIO Dashboard will display basic metrics as we couldn't connect to Prometheus successfully.",(0,b.jsx)("br",{})," ",(0,b.jsx)("br",{}),"Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."]})}),!(null!==t&&void 0!==t&&t.prometheusNotReady)&&(0,b.jsx)(He.Z,{iconComponent:(0,b.jsx)(j.a$2,{}),title:"We can\u2019t retrieve advanced metrics at this time.",help:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{fontSize:"14px"},children:"MinIO Dashboard will display basic metrics as we couldn\u2019t connect to Prometheus successfully. Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."}),(0,b.jsx)(f.Z,{sx:{paddingTop:"20px",fontSize:"14px","& a":{color:function(e){return e.colors.link}}},children:(0,b.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/metrics-alerts/collect-minio-metrics-using-prometheus.html?ref=con#minio-metrics-collect-using-prometheus",target:"_blank",rel:"noreferrer",children:"Read more about Prometheus on our Docs site."})})]})})]}),(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateColumns:"1fr",gap:"40px"},children:[(0,b.jsxs)(f.Z,{sx:{display:"grid",gridTemplateRows:"136px",gridTemplateColumns:{sm:"1fr 1fr 1fr",xs:"1fr"},gap:{md:"20px",xs:"20px"}},children:[(0,b.jsx)(ut,{children:(0,b.jsx)(st,{label:"Buckets",icon:(0,b.jsx)(j.wNb,{}),counterValue:t?(0,m.nk)(t.buckets):0,actions:(0,b.jsx)(Ae.rU,{to:xt.gA.BUCKETS,style:{textDecoration:"none",top:"40px",position:"relative",marginRight:"75px"},children:(0,b.jsx)(ct.Z,{tooltip:"Browse",onClick:function(){},text:"Browse",icon:(0,b.jsx)(j.LZ3,{}),color:"primary",variant:"outlined"})})})}),(0,b.jsx)(ut,{children:(0,b.jsx)(st,{label:"Objects",icon:(0,b.jsx)(j.xpX,{}),counterValue:t?(0,m.nk)(t.objects):0})}),(0,b.jsx)(ut,{children:(0,b.jsx)($e.Z,{onlineCount:C.length,offlineCount:y.length,label:"Servers",icon:(0,b.jsx)(j.SBZ,{})})}),(0,b.jsx)(ut,{children:(0,b.jsx)($e.Z,{offlineCount:E.length,onlineCount:I.length,label:"Drives",icon:(0,b.jsx)(j.FU8,{})})}),(0,b.jsxs)(f.Z,{sx:{gridRowStart:"1",gridRowEnd:"3",gridColumnStart:"3",border:"1px solid #f1f1f1",padding:"15px",display:"grid",justifyContent:"stretch"},children:[(0,b.jsx)(dt,{usageValue:i,total:n.total,unit:n.unit}),(0,b.jsxs)(f.Z,{sx:{display:"flex",flexFlow:"column",gap:"14px"},children:[(0,b.jsx)(ve,{icon:(0,b.jsx)(j.lnI,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Heal Activity"]}),value:d}),(0,b.jsx)(ve,{icon:(0,b.jsx)(rt.EY,{}),label:(0,b.jsxs)(f.Z,{children:[(0,b.jsx)(f.Z,{sx:{display:{md:"inline",xs:"none"}},children:"Time since last"})," ","Scan Activity"]}),value:o}),(0,b.jsx)(ve,{icon:(0,b.jsx)(j.oNq,{}),label:"Uptime",value:u})]})]})]}),(0,b.jsx)(f.Z,{sx:{display:"grid",gridTemplateRows:"auto",gridTemplateColumns:"1fr",gap:"auto"},children:(0,b.jsx)(ot,{data:p})})]})]})})},ft=(0,p.Z)((function(e){return(0,u.Z)((0,l.Z)({},(0,h.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,i=(0,o.I0)(),n=(0,r.useState)(!0),l=(0,a.Z)(n,2),s=l[0],c=l[1],u=(0,r.useState)(null),p=(0,a.Z)(u,2),f=p[0],h=p[1],m=(0,r.useCallback)((function(){F.Z.invoke("GET","/api/v1/admin/info").then((function(e){h(e),c(!1)})).catch((function(e){i((0,Y.Ih)(e)),c(!1)}))}),[h,c,i]);(0,r.useEffect)((function(){s&&m()}),[s,m]);var g=d()(f,"widgets",null);return(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)(Ke.Z,{label:"Metrics"}),s?(0,b.jsx)(x.ZP,{container:!0,children:(0,b.jsx)(x.ZP,{item:!0,xs:12,className:t.container,children:(0,b.jsx)(Ve.Z,{})})}):(0,b.jsx)(r.Fragment,{children:null!==g?(0,b.jsx)(_e,{}):(0,b.jsx)(pt,{usage:f})})]})}))},19847:function(e,t,i){i.d(t,{x:function(){return s}});var n=i(1413),a=i(45987),l=i(72791),r=i(80184),o=["children","value","index"],s=function(e){var t=e.children,i=e.value,s=e.index,d=(0,a.Z)(e,o);return(0,r.jsx)("div",(0,n.Z)((0,n.Z)({role:"tabpanel",hidden:i!==s,id:"simple-tabpanel-".concat(s),"aria-labelledby":"simple-tab-".concat(s),style:{marginTop:"5px"}},d),{},{children:i===s&&(0,r.jsx)(l.Fragment,{children:t})}))}}}]);
-//# sourceMappingURL=1182.f9bcec67.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1182.f9bcec67.chunk.js.map b/portal-ui/build/static/js/1182.f9bcec67.chunk.js.map
deleted file mode 100644
index 23c6e40a9..000000000
--- a/portal-ui/build/static/js/1182.f9bcec67.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1182.f9bcec67.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx","screens/Console/Common/FormComponents/DateTimePickerWrapper/DateTimePickerWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Dashboard/BasicDashboard/StatusCountCard.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Dashboard/Prometheus/types.ts","screens/Console/Dashboard/Prometheus/utils.tsx","screens/Console/Common/TabSelector/TabSelector.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/BarChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/ExpandGraphLink.tsx","screens/Console/Dashboard/Prometheus/Widgets/BarChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/LineChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/LinearGraphWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/PieChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SimpleWidget.tsx","screens/Console/Dashboard/DashboardItemBox.tsx","screens/Console/Dashboard/Prometheus/Widgets/NumericStatCard.tsx","screens/Console/Dashboard/Prometheus/Widgets/BucketsCountItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/ObjectsCountItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleRepWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleValueWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/CapacityItem.tsx","screens/Console/Dashboard/TimeStatItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/HealActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/ScanActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/UptimeActivityRenderer.tsx","screens/Console/Dashboard/Prometheus/widgetUtils.tsx","screens/Console/Dashboard/Prometheus/ZoomWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/LayoutUtil.tsx","screens/Console/Dashboard/CommonCard.tsx","screens/Console/Dashboard/Prometheus/MergedWidgets.tsx","screens/Console/Dashboard/Prometheus/Widgets/EntityStateStatItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/DualStatCard.tsx","screens/Console/Dashboard/Prometheus/Widgets/EntityStateItemRenderer.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkGetItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkPutItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/NetworkItem.tsx","screens/Console/Dashboard/Prometheus/Widgets/MergedWidgetsRenderer.tsx","screens/Console/Dashboard/Prometheus/PrDashboard.tsx","screens/Console/Dashboard/BasicDashboard/ServerInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/DriveInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/ServersList.tsx","screens/Console/Dashboard/BasicDashboard/CounterCard.tsx","screens/Console/Dashboard/BasicDashboard/ReportedUsage.tsx","screens/Console/Dashboard/BasicDashboard/BasicDashboard.tsx","screens/Console/Dashboard/Dashboard.tsx","screens/shared/tabs.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Button, Grid } from \"@mui/material\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport WatchLaterIcon from \"@mui/icons-material/WatchLater\";\nimport { actionsTray, widgetContainerCommon } from \"../common/styleLibrary\";\nimport DateTimePickerWrapper from \"../DateTimePickerWrapper/DateTimePickerWrapper\";\nimport SyncIcon from \"../../../../../icons/SyncIcon\";\nimport { OpenListIcon } from \"../../../../../icons\";\n\ninterface IDateRangeSelector {\n classes: any;\n timeStart: any;\n setTimeStart: (date: any) => void;\n timeEnd: any;\n setTimeEnd: (date: any) => void;\n triggerSync?: () => void;\n label?: string;\n startLabel?: string;\n endLabel?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n syncButton: {\n \"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type\": {\n fontSize: 18,\n },\n },\n schedulerIcon: {\n opacity: 0.4,\n fontSize: 10,\n \"& svg\": {\n width: 18,\n height: 18,\n },\n },\n selectorLabel: {\n color: \"#9D9E9D\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n marginLeft: 10,\n fontSize: 12,\n },\n });\n\nconst DateFilterAdornIcon = () => {\n return (\n \n \n \n );\n};\n\nconst DateRangeSelector = ({\n classes,\n timeStart,\n setTimeStart,\n timeEnd,\n setTimeEnd,\n triggerSync,\n label = \"Filter:\",\n startLabel = \"Start Time:\",\n endLabel = \"End Time:\",\n}: IDateRangeSelector) => {\n return (\n \n \n \n {label}\n \n \n \n \n \n \n \n {startLabel}\n \n \n \n \n \n\n \n \n \n \n \n {endLabel}\n \n \n \n \n \n \n\n {triggerSync && (\n \n }\n className={classes.syncButton}\n >\n Sync\n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(DateRangeSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\nimport DateTimePicker from \"@mui/lab/DateTimePicker\";\nimport AdapterMoment from \"@mui/lab/AdapterMoment\";\nimport LocalizationProvider from \"@mui/lab/LocalizationProvider\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport OpenListIcon from \"../../../../../icons/OpenListIcon\";\n\ninterface IDateTimePicker {\n value: any;\n onChange: (value: any) => any;\n classes: any;\n forSearchBlock?: boolean;\n forFilterContained?: boolean;\n label?: string;\n required?: boolean;\n tooltip?: string;\n id: string;\n disabled?: boolean;\n noInputIcon?: boolean;\n classNamePrefix?: string;\n openPickerIcon?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelectorOverride: {\n height: 40,\n border: \"#EAEDEE 1px solid\",\n marginLeft: 15,\n backgroundColor: \"#fff\",\n padding: \"0 16px\",\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n borderColor: \"#000\",\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: 600,\n color: \"#393939\",\n },\n },\n dateSelectorFilterOverride: {\n width: 180,\n height: 42,\n marginLeft: 20,\n padding: 0,\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: \"bold\",\n color: \"#081C42\",\n },\n \"@media (max-width: 900px)\": {\n width: 103,\n },\n },\n dateSelectorFormOverride: {\n width: \"100%\",\n maxWidth: 840,\n },\n parentDateOverride: {\n flexGrow: 1,\n },\n textBoxContainer: {\n flexGrow: 1,\n },\n openListIcon: {\n color: \"#9D9E9D\",\n width: 8,\n marginTop: 2,\n },\n paperOverride: {\n \"& .MuiCalendarPicker-root\": {\n padding: \"0 22px\",\n \"& > div\": {\n padding: 0,\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type\":\n {\n color: \"#0A224C\",\n fontWeight: \"bold\",\n },\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type\": {\n color: \"#9D9E9D\",\n \"& + button.MuiButtonBase-root\": {\n color: \"#9D9E9D\",\n },\n },\n \"& > div:nth-child(2)\": {\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n },\n },\n },\n \"& .MuiTypography-root.MuiTypography-caption\": {\n width: 26,\n height: 26,\n margin: 5,\n color: \"#BCBCBC\",\n fontSize: 10,\n },\n \"& button.MuiPickersDay-root\": {\n fontWeight: \"bold\",\n width: 26,\n height: 26,\n margin: 5,\n textAlign: \"center\",\n \"&.Mui-selected\": {\n backgroundColor: theme.palette.primary.main,\n color: \"#fff\",\n },\n },\n \"& div.MuiPickersDay-hiddenDaySpacingFiller\": {\n width: 26,\n height: 26,\n margin: 5,\n },\n \"& div.PrivatePickersSlideTransition-root\": {\n minHeight: 240,\n },\n \"& div.MuiCalendarPicker-viewTransitionContainer\": {\n borderTop: \"#F0F3F5 1px solid\",\n },\n \"& .MuiClockPicker-arrowSwitcher\": {\n marginRight: 10,\n marginTop: -1,\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n \"& + div > div\": {\n width: 255,\n height: 255,\n backgroundColor: \"#fff\",\n marginTop: 30,\n marginBottom: 14,\n border: \"#F0F3F5 3px solid\",\n \"& > div:nth-child(2)\": {\n backgroundColor: \"#B4B5B4\",\n width: 12,\n height: 12,\n \"&::before\": {\n content: \"' '\",\n width: 35,\n height: 35,\n display: \"block\",\n position: \"absolute\",\n border: \"#F0F3F5 3px solid\",\n top: -12,\n left: -12,\n borderRadius: \"100%\",\n },\n },\n \"& > div:nth-child(3)\": {\n backgroundColor: \"#B4B5B4\",\n width: 4,\n },\n \"& > div:last-of-type\": {\n marginTop: 15,\n \"& > span\": {\n color: \"#0A224C\",\n \"&.Mui-selected\": {\n color: \"#fff\",\n },\n \"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']\":\n {\n fontWeight: \"bold\",\n fontSize: 20,\n marginTop: -1,\n },\n },\n },\n },\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n });\n\nconst DateTimePickerWrapper = ({\n value,\n onChange,\n classes,\n forSearchBlock = false,\n forFilterContained = false,\n label,\n tooltip = \"\",\n required,\n id,\n disabled = false,\n noInputIcon = false,\n classNamePrefix = \"\",\n openPickerIcon,\n}: IDateTimePicker) => {\n let adornment = {};\n\n if (!noInputIcon) {\n adornment = {\n startAdornment: (\n \n \n \n ),\n };\n }\n\n if (forFilterContained) {\n adornment = {\n endAdornment: (\n \n \n \n ),\n };\n }\n\n const classOverridden = `${classNamePrefix}date-time-input ${\n forSearchBlock ? classes.dateSelectorOverride : \"\"\n } ${\n forFilterContained && !forSearchBlock\n ? classes.dateSelectorFilterOverride\n : \"\"\n }`;\n\n const clsName = forSearchBlock\n ? classes.parentDateOverride\n : classes.dateSelectorFormOverride;\n\n const inputItem = (\n \n (\n \n )}\n ampm={false}\n PopperProps={{\n className: classes.paperOverride,\n }}\n />\n \n );\n\n if (forSearchBlock) {\n return inputItem;\n }\n\n const containerCls = !forFilterContained ? classes.fieldContainer : \"\";\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n \n )}\n \n )}\n\n \n {inputItem}\n
\n \n \n );\n};\n\nexport default withStyles(styles)(DateTimePickerWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n \n {titleIcon} {title}\n
\n \n \n \n \n
\n \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\n\nexport const StatusCountCard = ({\n onlineCount = 0,\n offlineCount = 0,\n icon = null,\n label = \"\",\n okStatusText = \"Online\",\n notOkStatusText = \"Offline\",\n}: {\n icon: any;\n onlineCount: number;\n offlineCount: number;\n label: string;\n okStatusText?: string;\n notOkStatusText?: string;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n {onlineCount} \n \n \n {okStatusText}
\n \n \n\n \n {offlineCount} \n \n {\" \"}\n {notOkStatusText}
\n \n \n \n \n \n {icon}\n \n \n \n );\n};\n\nexport default StatusCountCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#E7A219\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number\n) => {\n if (activeDisks <= totalDrives / 2) {\n return STATUS_COLORS.RED;\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeDisks === totalDrives) {\n return STATUS_COLORS.GREEN;\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"online\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return STATUS_COLORS.RED;\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeNetwork === networkTotal) {\n return STATUS_COLORS.GREEN;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n IBarChartConfiguration,\n IBarChartRelation,\n IDataSRep,\n ILinearGraphConfiguration,\n IPieChartConfiguration,\n} from \"./Widgets/types\";\n\nexport enum widgetType {\n singleValue = \"singleValue\",\n linearGraph = \"linearGraph\",\n areaGraph = \"areaGraph\",\n barChart = \"barChart\",\n pieChart = \"pieChart\",\n singleRep = \"singleRep\",\n simpleWidget = \"simpleWidget\",\n}\n\nexport interface IDashboardPanel {\n id: number;\n mergedPanels?: IDashboardPanel[];\n title: string;\n data?: string | object[] | IDataSRep[];\n dataOuter?: string | object[];\n type?: widgetType;\n widgetIcon?: any;\n widgetConfiguration?:\n | ILinearGraphConfiguration[]\n | IBarChartConfiguration[]\n | IPieChartConfiguration;\n color?: string;\n fillColor?: string;\n innerLabel?: string;\n labelDisplayFunction?: (value: string) => any;\n disableYAxis?: boolean;\n xAxisFormatter?: (item: string) => string;\n yAxisFormatter?: (item: string) => string;\n customStructure?: IBarChartRelation[];\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport {\n getTimeFromTimestamp,\n niceBytes,\n niceDays,\n representationNumber,\n textToRGBColor,\n units,\n} from \"../../../../common/utils\";\nimport HealIcon from \"../../../../icons/HealIcon\";\nimport DiagnosticsIcon from \"../../../../icons/DiagnosticsIcon\";\nimport { UptimeIcon } from \"../../../../icons\";\n\nconst colorsMain = [\n \"#C4D4E9\",\n \"#DCD1EE\",\n \"#D1EEE7\",\n \"#EEDED1\",\n \"#AAF38F\",\n \"#F9E6C5\",\n \"#C83B51\",\n \"#F4CECE\",\n \"#D6D6D6\",\n];\n\nconst niceDaysFromNS = (seconds: string) => {\n return niceDays(seconds, \"ns\");\n};\n\nconst roundNumber = (value: string) => {\n return parseInt(value).toString(10);\n};\n\nexport const panelsConfiguration: IDashboardPanel[] = [\n {\n id: 1,\n title: \"Uptime\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDays,\n },\n {\n id: 50,\n title: \"Capacity\",\n data: [],\n dataOuter: [{ name: \"outer\", value: 100 }],\n widgetConfiguration: {\n outerChart: {\n colorList: [\"#9c9c9c\"],\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n },\n innerChart: {\n colorList: colorsMain,\n innerRadius: 20,\n outerRadius: 50,\n startAngle: 90,\n endAngle: -200,\n },\n },\n type: widgetType.pieChart,\n innerLabel: \"N/A\",\n labelDisplayFunction: niceBytes,\n },\n {\n id: 51,\n title: \"Usable Capacity\",\n data: [],\n dataOuter: [{ name: \"outer\", value: 100 }],\n widgetConfiguration: {\n outerChart: {\n colorList: [\"#9c9c9c\"],\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n },\n innerChart: {\n colorList: colorsMain,\n innerRadius: 20,\n outerRadius: 50,\n startAngle: 90,\n endAngle: -200,\n },\n },\n type: widgetType.pieChart,\n innerLabel: \"N/A\",\n labelDisplayFunction: niceBytes,\n },\n {\n id: 68,\n title: \"Data Usage Growth\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.areaGraph,\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 52,\n title: \"Object size distribution\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"a\",\n color: \"#2781B0\",\n background: {\n fill: \"#EEF1F4\",\n },\n greatestColor: \"#081C42\",\n },\n ],\n customStructure: [\n { originTag: \"LESS_THAN_1024_B\", displayTag: \"Less than 1024B\" },\n {\n originTag: \"BETWEEN_1024_B_AND_1_MB\",\n displayTag: \"Between 1024B and 1MB\",\n },\n {\n originTag: \"BETWEEN_1_MB_AND_10_MB\",\n displayTag: \"Between 1MB and 10MB\",\n },\n {\n originTag: \"BETWEEN_10_MB_AND_64_MB\",\n displayTag: \"Between 10MB and 64MB\",\n },\n {\n originTag: \"BETWEEN_64_MB_AND_128_MB\",\n displayTag: \"Between 64MB and 128MB\",\n },\n {\n originTag: \"BETWEEN_128_MB_AND_512_MB\",\n displayTag: \"Between 128MB and 512MB\",\n },\n {\n originTag: \"GREATER_THAN_512_MB\",\n displayTag: \"Greater than 512MB\",\n },\n ],\n type: widgetType.barChart,\n },\n {\n id: 66,\n title: \"Buckets\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 44,\n title: \"Objects\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 63,\n title: \"API Data Received Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n strokeWidth: 3,\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 61,\n title: \"Total Open FDs\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#22B573\",\n fillColor: \"#A6E8C4\",\n },\n {\n id: 62,\n title: \"Total Goroutines\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#F7655E\",\n fillColor: \"#F4CECE\",\n },\n {\n id: 77,\n title: \"Node CPU Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 60,\n title: \"API Request Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 70,\n title: \"API Data Sent Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 17,\n title: \"Internode Data Transfer\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 73,\n title: \"Node IO\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 80,\n title: \"Time Since Last Heal Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 81,\n title: \"Time Since Last Scan Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 71,\n title: \"API Request Error Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 76,\n title: \"Node Memory Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 74,\n title: \"Drive Used Capacity\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 82,\n title: \"Drives Free Inodes\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n disableYAxis: true,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 11,\n title: \"Node Syscalls\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 8,\n title: \"Node File Descriptors\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 500,\n mergedPanels: [\n {\n id: 53,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 69,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Servers\",\n },\n {\n id: 501,\n mergedPanels: [\n {\n id: 9,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 78,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Drives\",\n },\n {\n id: 502,\n mergedPanels: [\n {\n id: 65,\n title: \"Upload\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n {\n id: 64,\n title: \"Download\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n ],\n title: \"Network\",\n },\n];\n\nconst calculateMainValue = (elements: any[], metricCalc: string) => {\n if (elements.length === 0) {\n return [\"\", \"0\"];\n }\n\n switch (metricCalc) {\n case \"mean\":\n const sumValues = elements.reduce((accumulator, currValue) => {\n return accumulator + parseFloat(currValue[1]);\n }, 0);\n\n const mean = Math.floor(sumValues / elements.length);\n\n return [\"\", mean.toString()];\n default:\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n return sortResult[sortResult.length - 1];\n }\n};\n\nconst constructLabelNames = (metrics: any, legendFormat: string) => {\n const keysToReplace = Object.keys(metrics);\n const expToReplace = new RegExp(`{{(${keysToReplace.join(\"|\")})}}`, \"g\");\n\n let replacedLegend = legendFormat.replace(expToReplace, (matchItem) => {\n const nwMatchItem = matchItem.replace(/({{|}})/g, \"\");\n return metrics[nwMatchItem];\n });\n\n const countVarsOpen = (replacedLegend.match(/{{/g) || []).length;\n const countVarsClose = (replacedLegend.match(/}}/g) || []).length;\n\n let cleanLegend = replacedLegend.replace(/{{(.*?)}}/g, \"\");\n\n if (\n countVarsOpen === countVarsClose &&\n countVarsOpen !== 0 &&\n countVarsClose !== 0\n ) {\n keysToReplace.forEach((element) => {\n replacedLegend = replacedLegend.replace(element, metrics[element]);\n });\n\n cleanLegend = replacedLegend;\n }\n\n // In case not all the legends were replaced, we remove the placeholders.\n return cleanLegend;\n};\n\nexport const getWidgetsWithValue = (payload: any[]): IDashboardPanel[] => {\n return panelsConfiguration.map((panelItem: IDashboardPanel) => {\n const payloadData = payload.find(\n (panelT) =>\n panelT.title.toLowerCase().trim() ===\n panelItem.title.toLowerCase().trim()\n );\n return widgetDetailsToPanel(payloadData, panelItem);\n });\n};\n\nexport const widgetDetailsToPanel = (\n payloadData: any,\n panelItem: IDashboardPanel\n) => {\n if (!payloadData) {\n return panelItem;\n }\n\n const typeOfPayload = payloadData.type;\n\n switch (panelItem.type) {\n case widgetType.singleValue:\n case widgetType.simpleWidget:\n if (typeOfPayload === \"stat\" || typeOfPayload === \"singlestat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n\n if (elements === null) {\n elements = [];\n }\n\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const data = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data,\n };\n }\n break;\n case widgetType.pieChart:\n if (typeOfPayload === \"gauge\") {\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n let chartSeries = get(payloadData, \"targets\", []).filter(\n (seriesItem: any) => seriesItem !== null\n );\n\n const values = chartSeries.map((chartTarget: any) => {\n const resultMap =\n chartTarget.result && Array.isArray(chartTarget.result)\n ? chartTarget.result\n : [];\n\n const values = resultMap.map((elementValue: any) => {\n const values = get(elementValue, \"values\", []);\n const metricKeyItem = Object.keys(elementValue.metric);\n const sortResult = values.sort(\n (value1: any[], value2: any[]) =>\n parseInt(value1[0][1]) - parseInt(value2[0][1])\n );\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n const value = sortResult[sortResult.length - 1];\n return {\n name: metricName,\n value: parseInt(value[1]),\n legend: chartTarget.legendFormat,\n };\n });\n\n return values;\n });\n\n const firstTarget =\n chartSeries[0].result && chartSeries[0].result.length > 0\n ? chartSeries[0].result[0].values\n : [];\n\n const totalValues = calculateMainValue(firstTarget, metricCalc);\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(totalValues[1])\n : totalValues[1];\n\n return {\n ...panelItem,\n data: values,\n innerLabel,\n };\n }\n break;\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n if (typeOfPayload === \"graph\") {\n let targets = get(payloadData, \"targets\", []);\n if (targets === null) {\n targets = [];\n }\n\n const series: any[] = [];\n const plotValues: any[] = [];\n\n targets.forEach(\n (\n targetMaster: { legendFormat: string; result: any[] },\n index: number\n ) => {\n // Add a new serie to plot variables in case it is not from multiple values\n let results = get(targetMaster, \"result\", []);\n const legendFormat = targetMaster.legendFormat;\n if (results === null) {\n results = [];\n }\n\n results.forEach((itemVals: { metric: object; values: any[] }) => {\n // Label Creation\n const labelName = constructLabelNames(\n itemVals.metric,\n legendFormat\n );\n const keyName = `key_${index}${labelName}`;\n\n // series creation with recently created label\n series.push({\n dataKey: keyName,\n keyLabel: labelName,\n lineColor: \"\",\n fillColor: \"\",\n });\n\n // we iterate over values and create elements\n let values = get(itemVals, \"values\", []);\n if (values === null) {\n values = [];\n }\n\n values.forEach((valInfo: any[]) => {\n const itemIndex = plotValues.findIndex(\n (element) => element.name === valInfo[0]\n );\n\n // Element not exists yet\n if (itemIndex === -1) {\n let itemToPush: any = { name: valInfo[0] };\n itemToPush[keyName] = valInfo[1];\n\n plotValues.push(itemToPush);\n } else {\n plotValues[itemIndex][keyName] = valInfo[1];\n }\n });\n });\n }\n );\n\n const sortedSeries = series.sort((series1: any, series2: any) => {\n if (series1.keyLabel < series2.keyLabel) {\n return -1;\n }\n if (series1.keyLabel > series2.keyLabel) {\n return 1;\n }\n return 0;\n });\n\n const seriesWithColors = sortedSeries.map(\n (serialC: any, index: number) => {\n return {\n ...serialC,\n lineColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n fillColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n };\n }\n );\n\n const sortedVals = plotValues.sort(\n (value1: any, value2: any) => value1.name - value2.name\n );\n\n return {\n ...panelItem,\n widgetConfiguration: seriesWithColors,\n data: sortedVals,\n };\n }\n break;\n case widgetType.barChart:\n if (typeOfPayload === \"bargauge\") {\n let chartBars = get(payloadData, \"targets[0].result\", []);\n\n if (chartBars === null) {\n chartBars = [];\n }\n\n const sortFunction = (value1: any[], value2: any[]) =>\n value1[0] - value2[0];\n\n let values = [];\n if (panelItem.customStructure) {\n values = panelItem.customStructure.map((structureItem) => {\n const metricTake = chartBars.find((element: any) => {\n const metricKeyItem = Object.keys(element.metric);\n\n const metricName = element.metric[metricKeyItem[0]];\n\n return metricName === structureItem.originTag;\n });\n\n const elements = get(metricTake, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n\n return {\n name: structureItem.displayTag,\n a: parseInt(lastValue[1]),\n };\n });\n } else {\n // If no configuration is set, we construct the series for bar chart and return the element\n values = chartBars.map((elementValue: any) => {\n const metricKeyItem = Object.keys(elementValue.metric);\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n\n const elements = get(elementValue, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n return { name: metricName, a: parseInt(lastValue[1]) };\n });\n }\n\n return {\n ...panelItem,\n data: values,\n };\n }\n break;\n case widgetType.singleRep:\n if (typeOfPayload === \"stat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n if (elements === null) {\n elements = [];\n }\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n let valuesForBackground = [];\n\n if (sortResult.length === 1) {\n valuesForBackground.push({ value: 0 });\n }\n\n sortResult.forEach((eachVal: any) => {\n valuesForBackground.push({ value: parseInt(eachVal[1]) });\n });\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data: valuesForBackground,\n innerLabel,\n };\n }\n break;\n }\n\n return panelItem;\n};\n\nconst verifyNumeric = (item: string) => {\n return !isNaN(parseFloat(item));\n};\n\nexport const splitSizeMetric = (val: string) => {\n const splittedText = val.split(\" \");\n // Value is not a size metric, we return as common string\n\n const singleValue = () => {\n let vl = val;\n\n if (verifyNumeric(val)) {\n vl = representationNumber(parseFloat(val));\n }\n return {vl} ;\n };\n\n if (splittedText.length !== 2) {\n return singleValue();\n }\n\n if (!units.includes(splittedText[1])) {\n return singleValue();\n }\n\n return (\n \n {splittedText[0]}\n {splittedText[1]} \n \n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { ITabOption } from \"./types\";\n\ninterface ITabSelector {\n selectedTab: number;\n onChange: (newValue: number) => void;\n tabOptions: ITabOption[];\n}\n\nconst tabSubStyles = makeStyles({\n tabRoot: {\n height: \"40px\",\n borderBottom: \"1px solid #eaeaea\",\n },\n root: {\n width: \"120px\",\n backgroundColor: \"transparent\",\n paddingTop: 0,\n paddingBottom: 0,\n fontSize: \"14px\",\n fontWeight: 600,\n color: \"#07193E\",\n height: \"40px\",\n },\n selected: {\n \"&.MuiTab-selected\": {\n backgroundColor: \"#F6F7F7 !important\",\n },\n \"&.MuiTab-wrapper\": {\n color: \"#07193E\",\n fontWeight: 600,\n },\n },\n indicator: {\n background:\n \"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;\",\n height: 2,\n },\n scroller: {\n maxWidth: 1185,\n position: \"relative\",\n \"&::after\": {\n content: '\" \"',\n backgroundColor: \"#EEF1F4\",\n height: 2,\n width: \"100%\",\n display: \"block\",\n },\n },\n});\n\nconst TabSelector = ({ selectedTab, onChange, tabOptions }: ITabSelector) => {\n const subStyles = tabSubStyles();\n\n return (\n \n , newValue: number) => {\n onChange(newValue);\n }}\n classes={{\n root: subStyles.tabRoot,\n indicator: subStyles.indicator,\n scroller: subStyles.scroller,\n }}\n >\n {tabOptions.map((option, index) => {\n let tabOptions: ITabOption = {\n label: option.label,\n };\n\n if (option.value) {\n tabOptions = { ...tabOptions, value: option.value };\n }\n\n if (option.disabled) {\n tabOptions = { ...tabOptions, disabled: option.disabled };\n }\n\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default TabSelector;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst BarChartTooltip = ({\n active,\n payload,\n label,\n barChartConfiguration,\n classes,\n}: any) => {\n if (active) {\n return (\n \n
{label}
\n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n
\n );\n })}\n
\n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(BarChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ZoomOutMapIcon from \"@mui/icons-material/ZoomOutMap\";\nimport { Box } from \"@mui/material\";\nimport { IDashboardPanel } from \"../types\";\nimport { useDispatch } from \"react-redux\";\nimport { openZoomPage } from \"../../dashboardSlice\";\n\nconst ExpandGraphLink = ({ panelItem }: { panelItem: IDashboardPanel }) => {\n const dispatch = useDispatch();\n return (\n \n {\n e.preventDefault();\n dispatch(openZoomPage(panelItem));\n }}\n >\n Expand Graph\n \n {\n dispatch(openZoomPage(panelItem));\n }}\n className={\"zoom-graph-icon\"}\n >\n \n \n \n );\n};\n\nexport default ExpandGraphLink;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useDispatch } 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 { IBarChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport BarChartTooltip from \"./tooltips/BarChartTooltip\";\n\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport ExpandGraphLink from \"./ExpandGraphLink\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\ninterface IBarChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n zoomActivated?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n });\n\nconst CustomizedAxisTick = ({ y, payload }: any) => {\n return (\n \n {payload.value}\n \n );\n};\n\nconst BarChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n zoomActivated = false,\n}: IBarChartWidget) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const barChartConfiguration = result\n ? (result.widgetConfiguration as IBarChartConfiguration[])\n : [];\n\n let greatestIndex = 0;\n let currentValue = 0;\n\n if (barChartConfiguration.length === 1) {\n const dataGraph = barChartConfiguration[0];\n data.forEach((item: any, index: number) => {\n if (item[dataGraph.dataKey] > currentValue) {\n currentValue = item[dataGraph.dataKey];\n greatestIndex = index;\n }\n });\n }\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n \n {!zoomActivated && (\n
\n {title} \n
\n )}\n {loading && (\n
\n \n
\n )}\n {!loading && (\n
\n \n \n \n }\n tickLine={false}\n axisLine={false}\n width={150}\n hide={!biggerThanMd}\n style={{\n fontSize: \"12px\",\n fontWeight: 100,\n }}\n />\n {barChartConfiguration.map((bar) => (\n \n {barChartConfiguration.length === 1 ? (\n \n {data.map((_: any, index: number) => (\n | \n ))}\n \n ) : null}\n \n ))}\n \n }\n />\n \n \n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(BarChartWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { getTimeFromTimestamp } from \"../../../../../../common/utils\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst LineChartTooltip = ({\n active,\n payload,\n label,\n linearConfiguration,\n yAxisFormatter,\n classes,\n}: any) => {\n if (active) {\n return (\n \n
\n {getTimeFromTimestamp(label, true)}\n
\n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n
\n
\n
\n \n {linearConfiguration[index].keyLabel}:{\" \"}\n {yAxisFormatter(pl.value)}\n \n
\n
\n );\n })}\n
\n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(LineChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { Box, useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ILinearGraphConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport LineChartTooltip from \"./tooltips/LineChartTooltip\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport ExpandGraphLink from \"./ExpandGraphLink\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\ninterface ILinearGraphWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n hideYAxis?: boolean;\n yAxisFormatter?: (item: string) => string;\n xAxisFormatter?: (item: string) => string;\n areaWidget?: boolean;\n zoomActivated?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n verticalAlignment: {\n flexDirection: \"column\",\n },\n chartCont: {\n position: \"relative\",\n height: 140,\n width: \"100%\",\n },\n legendChart: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"0 1 auto\",\n maxHeight: 130,\n margin: 0,\n overflowY: \"auto\",\n position: \"relative\",\n textAlign: \"center\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n color: \"#404143\",\n fontWeight: \"bold\",\n fontSize: 12,\n },\n loadingAlign: {\n width: 40,\n height: 40,\n textAlign: \"center\",\n margin: \"15px auto\",\n },\n });\n\nconst LinearGraphWidget = ({\n classes,\n title,\n\n timeStart,\n timeEnd,\n propLoading,\n panelItem,\n apiPrefix,\n hideYAxis = false,\n areaWidget = false,\n yAxisFormatter = (item: string) => item,\n xAxisFormatter = (item: string) => item,\n zoomActivated = false,\n}: ILinearGraphWidget) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [dataMax, setDataMax] = useState(0);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n let maxVal = 0;\n for (const dp of widgetsWithValue.data) {\n for (const key in dp) {\n if (key === \"name\") {\n continue;\n }\n let val = parseInt(dp[key]);\n\n if (isNaN(val)) {\n val = 0;\n }\n\n if (maxVal < val) {\n maxVal = val;\n }\n }\n }\n setDataMax(maxVal);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let intervalCount = Math.floor(data.length / 5);\n\n const linearConfiguration = result\n ? (result?.widgetConfiguration as ILinearGraphConfiguration[])\n : [];\n\n const CustomizedDot = (prop: any) => {\n const { cx, cy, index } = prop;\n\n if (index % 3 !== 0) {\n return null;\n }\n return ;\n };\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n \n {!zoomActivated && (\n \n {title} \n
\n )}\n \n {loading && }\n {!loading && (\n \n \n
\n \n {areaWidget && (\n \n \n \n \n\n \n \n \n )}\n \n xAxisFormatter(value)}\n interval={intervalCount}\n tick={{\n fontSize: \"68%\",\n fontWeight: \"normal\",\n color: \"#404143\",\n }}\n tickCount={10}\n stroke={\"#082045\"}\n />\n yAxisFormatter(value)}\n tick={{\n fontSize: \"68%\",\n fontWeight: \"normal\",\n color: \"#404143\",\n }}\n stroke={\"#082045\"}\n />\n {linearConfiguration.map((section, index) => {\n return (\n : false}\n />\n );\n })}\n \n }\n wrapperStyle={{\n zIndex: 5000,\n }}\n />\n \n \n
\n {!areaWidget && (\n \n {zoomActivated && (\n \n Series \n \n \n \n )}\n {biggerThanMd && (\n \n {linearConfiguration.map((section, index) => {\n return (\n
\n
\n
\n {section.keyLabel}\n
\n
\n );\n })}\n
\n )}\n \n )}\n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(LinearGraphWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } 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\";\n\nimport { IDashboardPanel } from \"../types\";\nimport { splitSizeMetric, widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport get from \"lodash/get\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\ninterface IPieChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n pieChartLabel: {\n fontSize: 60,\n color: \"#07193E\",\n fontWeight: \"bold\",\n width: \"100%\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n chartContainer: {\n width: \"100%\",\n height: 140,\n },\n });\n\nconst PieChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n\n apiPrefix,\n}: IPieChartWidget) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [dataInner, setDataInner] = useState([]);\n const [dataOuter, setDataOuter] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setDataInner(widgetsWithValue.data);\n setDataOuter(widgetsWithValue.dataOuter as object[]);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const pieChartConfiguration = result\n ? (result.widgetConfiguration as IPieChartConfiguration)\n : [];\n const middleLabel = result?.innerLabel;\n\n const innerColors = get(pieChartConfiguration, \"innerChart.colorList\", []);\n const outerColors = get(pieChartConfiguration, \"outerChart.colorList\", []);\n\n return (\n \n
{title}
\n {loading && (\n
\n \n
\n )}\n {!loading && (\n
\n
\n {middleLabel && splitSizeMetric(middleLabel)}\n \n
\n
\n \n {dataOuter && (\n \n {dataOuter.map((entry, index) => (\n | \n ))}\n \n )}\n {dataInner && (\n \n {dataInner.map((entry, index) => {\n return (\n | \n );\n })}\n \n )}\n \n \n
\n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(PieChartWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect, useDispatch } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { IDashboardPanel } from \"../types\";\n\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\ninterface ISimpleWidget {\n classes: any;\n iconWidget: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n apiPrefix: string;\n renderFn?: undefined | null | ((arg: Record) => any);\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n mainWidgetContainer: {\n display: \"inline-flex\",\n color: \"#072A4D\",\n alignItems: \"center\",\n },\n icon: {\n color: \"#072A4D\",\n fill: \"#072A4D\",\n marginRight: 5,\n marginLeft: 12,\n },\n widgetLabel: {\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n marginRight: 10,\n },\n widgetValue: {\n marginRight: 25,\n },\n });\n\nconst SimpleWidget = ({\n classes,\n iconWidget,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n renderFn,\n}: ISimpleWidget) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n if (renderFn) {\n return renderFn({\n valueToRender: data,\n loading,\n title,\n id: panelItem.id,\n iconWidget: iconWidget,\n });\n }\n return (\n \n {loading && (\n \n \n
\n )}\n {!loading && (\n \n {iconWidget ? iconWidget : null} \n {title}: \n {data} \n \n )}\n \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SimpleWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\nconst DashboardItemBox = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default DashboardItemBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Tooltip } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\nconst NumericStatCard = ({\n value,\n label = \"\",\n icon = null,\n loading = false,\n}: {\n value: string | number;\n label?: any;\n icon?: any;\n loading?: boolean;\n}) => {\n const getContent = () => {\n return (\n \n \n \n {label}\n \n\n \n \n {value}\n \n \n \n \n {}\n {loading ? (\n \n ) : (\n icon\n )}\n \n \n );\n };\n\n return (\n \n {getContent()}\n \n );\n};\n\nexport default NumericStatCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport NumericStatCard from \"./NumericStatCard\";\nimport { BucketsIcon } from \"../../../../../icons\";\n\nconst BucketsCountItem = ({\n title,\n value,\n loading,\n}: {\n title: string;\n value: string;\n loading?: boolean;\n}) => {\n return (\n }\n value={value}\n loading={loading}\n />\n );\n};\n\nexport default BucketsCountItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport NumericStatCard from \"./NumericStatCard\";\nimport { TotalObjectsIcon } from \"../../../../../icons\";\n\nconst ObjectsCountItem = ({\n title,\n value,\n loading,\n}: {\n title: string;\n value: string;\n loading?: boolean;\n}) => {\n return (\n }\n value={value}\n loading={loading}\n />\n );\n};\n\nexport default ObjectsCountItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect, useDispatch } from \"react-redux\";\n\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { representationNumber } from \"../../../../../common/utils\";\nimport api from \"../../../../../common/api\";\nimport DashboardItemBox from \"../../DashboardItemBox\";\nimport BucketsCountItem from \"./BucketsCountItem\";\nimport ObjectsCountItem from \"./ObjectsCountItem\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\ninterface ISingleRepWidget {\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n color?: string;\n fillColor?: string;\n apiPrefix: string;\n}\n\nconst SingleRepWidget = ({\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n\n apiPrefix,\n}: ISingleRepWidget) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let repNumber = \"\";\n\n if (result) {\n const resultRep = parseInt(result.innerLabel || \"0\");\n\n if (!isNaN(resultRep)) {\n repNumber = representationNumber(resultRep);\n } else {\n repNumber = \"0\";\n }\n }\n\n const renderById = (id: number) => {\n if (id === 66) {\n return (\n \n \n \n );\n }\n if (id === 44) {\n return (\n \n \n \n );\n }\n\n return null;\n };\n\n return renderById(panelItem.id);\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default connector(SingleRepWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect, useDispatch } 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\";\n\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\ninterface ISingleValueWidget {\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n\n classes: any;\n apiPrefix: string;\n renderFn?: (arg: Record) => any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n metric: {\n fontSize: 60,\n lineHeight: 1,\n color: \"#07193E\",\n fontWeight: 700,\n },\n titleElement: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: 700,\n },\n containerAlignment: {\n display: \"flex\",\n height: 140,\n flexDirection: \"column\",\n justifyContent: \"center\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n });\n\nconst SingleValueWidget = ({\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n classes,\n apiPrefix,\n renderFn,\n}: ISingleValueWidget) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const valueToRender = splitSizeMetric(data);\n\n if (renderFn) {\n return renderFn({ valueToRender, loading, title, id: panelItem.id });\n }\n return (\n \n {loading && (\n
\n \n
\n )}\n {!loading && (\n
\n {splitSizeMetric(data)}
\n {title}
\n \n )}\n
\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SingleValueWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { IDashboardPanel } from \"../types\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { useDispatch } from \"react-redux\";\n\nimport {\n calculateBytes,\n capacityColors,\n niceBytesInt,\n} from \"../../../../../common/utils\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { ReportedUsageIcon } from \"../../../../../icons\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\nconst CapacityItem = ({\n value,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n}: {\n value: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n}) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const [totalUsableFree, setTotalUsableFree] = useState(0);\n const [totalUsed, setTotalUsed] = useState(0);\n const [totalUsable, setTotalUsable] = useState(0);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${value.id}/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, value);\n\n let tUsable = 0;\n let tUsed = 0;\n let tFree = 0;\n\n widgetsWithValue.data.forEach((eachArray: any[]) => {\n eachArray.forEach((itemSum) => {\n switch (itemSum.legend) {\n case \"Total Usable\":\n tUsable += itemSum.value;\n break;\n case \"Used Space\":\n tUsed += itemSum.value;\n break;\n case \"Usable Free\":\n tFree += itemSum.value;\n break;\n }\n });\n });\n\n setTotalUsableFree(tFree);\n setTotalUsed(tUsed);\n setTotalUsable(tUsable);\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, value, timeEnd, timeStart, dispatch, apiPrefix]);\n\n const usedConvert = calculateBytes(totalUsed, true, false);\n\n const plotValues = [\n {\n value: totalUsableFree,\n color: \"#D6D6D6\",\n label: \"Usable Available Space\",\n },\n {\n value: totalUsed,\n color: capacityColors(totalUsed, totalUsable),\n label: \"Used Space\",\n },\n ];\n return (\n \n \n Capacity\n \n \n \n {niceBytesInt(totalUsableFree)}\n \n \n Current Usable Capacity\n \n \n \n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n \n \n \n \n Used:\n \n \n {usedConvert.total}
\n {usedConvert.unit}
\n \n \n Of: {niceBytesInt(totalUsable)}
\n \n \n\n \n \n {loading ? (\n \n ) : (\n \n )}\n \n \n \n \n );\n};\n\nexport default CapacityItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { SuccessIcon } from \"../../../icons\";\nimport Loader from \"../Common/Loader/Loader\";\n\nconst TimeStatItem = ({\n icon,\n label,\n value,\n loading = false,\n}: {\n icon: any;\n label: any;\n value: string;\n loading?: boolean;\n}) => {\n return (\n \n {loading ? : icon}\n \n {label}\n \n {value} \n {value !== \"n/a\" ? : null}\n \n );\n};\n\nexport default TimeStatItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\n\nexport type SimpleWidgetRenderProps = {\n valueToRender?: any;\n loading?: boolean;\n title?: any;\n id?: number;\n iconWidget?: any;\n};\nconst HealActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n \n \n Time since last\n {\" \"}\n Heal Activity\n \n }\n value={valueToRender}\n />\n \n );\n};\n\nexport default HealActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\nimport { SimpleWidgetRenderProps } from \"./HealActivityRenderer\";\n\nconst ScanActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n \n \n Time since last\n {\" \"}\n Scan Activity\n \n }\n value={valueToRender}\n />\n \n );\n};\n\nexport default ScanActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport TimeStatItem from \"../../TimeStatItem\";\n\nexport type SimpleWidgetRenderProps = {\n valueToRender?: any;\n loading?: boolean;\n title?: any;\n id?: number;\n iconWidget?: any;\n};\nconst UptimeActivityRenderer = ({\n valueToRender = \"\",\n loading = false,\n iconWidget = null,\n}: SimpleWidgetRenderProps) => {\n return (\n \n Uptime }\n value={valueToRender}\n />\n \n );\n};\n\nexport default UptimeActivityRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport BarChartWidget from \"./Widgets/BarChartWidget\";\nimport LinearGraphWidget from \"./Widgets/LinearGraphWidget\";\nimport PieChartWidget from \"./Widgets/PieChartWidget\";\nimport SimpleWidget from \"./Widgets/SimpleWidget\";\nimport SingleRepWidget from \"./Widgets/SingleRepWidget\";\nimport SingleValueWidget from \"./Widgets/SingleValueWidget\";\nimport CapacityItem from \"./Widgets/CapacityItem\";\nimport DashboardItemBox from \"../DashboardItemBox\";\nimport HealActivityRenderer, {\n SimpleWidgetRenderProps,\n} from \"./Widgets/HealActivityRenderer\";\nimport ScanActivityRenderer from \"./Widgets/ScanActivityRenderer\";\nimport UptimeActivityRenderer from \"./Widgets/UptimeActivityRenderer\";\n\nexport const componentToUse = (\n value: IDashboardPanel,\n timeStart: any,\n timeEnd: any,\n loading: boolean,\n apiPrefix: string,\n zoomActivated: boolean = false\n) => {\n switch (value.type) {\n case widgetType.singleValue:\n return (\n \n );\n case widgetType.simpleWidget:\n let renderFn;\n let CmpToRender: any = null;\n if (value.id === 80) {\n CmpToRender = HealActivityRenderer;\n } else if (value.id === 81) {\n CmpToRender = ScanActivityRenderer;\n } else if (value.id === 1) {\n CmpToRender = UptimeActivityRenderer;\n }\n\n if ([80, 81, 1].includes(value.id)) {\n renderFn = ({\n valueToRender,\n loading,\n title,\n id,\n iconWidget,\n }: SimpleWidgetRenderProps) => {\n return (\n \n );\n };\n }\n return (\n \n );\n case widgetType.pieChart:\n if (value.id === 50) {\n return (\n \n \n \n );\n }\n return (\n \n );\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n return (\n \n );\n case widgetType.barChart:\n return (\n \n );\n case widgetType.singleRep:\n const fillColor = value.fillColor ? value.fillColor : value.color;\n return (\n \n );\n default:\n return null;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { IDashboardPanel } from \"./types\";\nimport { componentToUse } from \"./widgetUtils\";\nimport { closeZoomPage } from \"../dashboardSlice\";\n\ninterface IZoomWidget {\n widgetRender: number;\n value: IDashboardPanel | null;\n modalOpen: boolean;\n timeStart: any;\n timeEnd: any;\n apiPrefix: string;\n}\n\nconst ZoomWidget = ({\n value,\n modalOpen,\n timeStart,\n timeEnd,\n apiPrefix,\n}: IZoomWidget) => {\n const dispatch = useDispatch();\n if (!value) {\n return null;\n }\n\n return (\n {\n dispatch(closeZoomPage());\n }}\n modalOpen={modalOpen}\n wideLimit={false}\n noContentPadding\n >\n \n {componentToUse(value, timeStart, timeEnd, true, apiPrefix, true)}\n \n \n );\n};\n\nexport default ZoomWidget;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box } from \"@mui/material\";\nimport { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type DLayoutColumnProps = {\n componentId: number;\n sx?: SxProps;\n};\nexport type DLayoutRowProps = {\n sx?: SxProps;\n columns: DLayoutColumnProps[];\n};\n\nexport const summaryPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n minWidth: 0,\n display: \"grid\",\n gridTemplateColumns: {\n md: \"1fr 1fr 1fr 1fr\",\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 66,\n },\n {\n componentId: 44,\n },\n {\n componentId: 500,\n },\n {\n componentId: 501,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0, // important to avoid css grid blow out.\n gridTemplateColumns: {\n md: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 50,\n },\n {\n componentId: 502,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n md: \"1fr 1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 80,\n },\n {\n componentId: 81,\n },\n {\n componentId: 1,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 68,\n },\n {\n componentId: 52,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 63,\n },\n {\n componentId: 70,\n },\n ],\n },\n];\n\nexport const trafficPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 60,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: {\n sm: \"1fr 1fr\",\n xs: \"1fr\",\n },\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 71,\n sx: {\n flex: 1,\n width: \"50%\",\n flexShrink: 0,\n },\n },\n {\n componentId: 17,\n sx: {\n flex: 1,\n width: \"50%\",\n flexShrink: 0,\n },\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n gridTemplateColumns: \"1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 73,\n },\n ],\n },\n];\n\nexport const resourcesPanelsLayout: DLayoutRowProps[] = [\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 76,\n },\n {\n componentId: 77,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 11,\n },\n {\n componentId: 8,\n },\n ],\n },\n {\n sx: {\n display: \"grid\",\n minWidth: 0,\n gridTemplateColumns: \"1fr 1fr\",\n gap: \"30px\",\n },\n columns: [\n {\n componentId: 82,\n },\n {\n componentId: 74,\n },\n ],\n },\n];\nexport const RowPanelLayout = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Card, CardHeader } from \"@mui/material\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport React, { Fragment } from \"react\";\nimport { widgetCommon } from \"../Common/FormComponents/common/styleLibrary\";\n\nexport interface ISubInterface {\n message: string;\n fontWeight?: \"normal\" | \"bold\";\n}\n\ninterface ICommonCard {\n title: string;\n metricValue: any;\n metricUnit?: string;\n subMessage?: ISubInterface;\n moreLink?: string;\n rightComponent?: any;\n extraMargin?: boolean;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n cardRoot: {\n ...widgetCommon.singleValueContainer,\n \"&.MuiPaper-root\": {\n borderRadius: 10,\n },\n },\n metricText: {\n fontSize: 70,\n lineHeight: 1.1,\n color: \"#07193E\",\n fontWeight: \"bold\",\n },\n unitText: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: \"normal\",\n },\n subHearderContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n subMessage: {\n fontSize: 10,\n color: \"#767676\",\n \"&.bold\": {\n fontWeight: \"bold\",\n },\n },\n headerContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n viewAll: {\n fontSize: 10,\n color: \"#C83B51\",\n textTransform: \"capitalize\",\n\n \"& a, & a:hover, & a:visited, & a:active\": {\n color: \"#C83B51\",\n },\n },\n extraMargin: {\n margin: \"10px 20px 10px 0\",\n },\n });\n\nconst cardSubStyles = makeStyles({\n root: { backgroundColor: \"#fff\", padding: 0 },\n title: {\n ...widgetCommon.titleContainer,\n },\n content: {\n maxWidth: \"100%\",\n },\n});\n\nconst CommonCard = ({\n title,\n metricValue,\n metricUnit,\n subMessage,\n moreLink,\n rightComponent,\n extraMargin = false,\n classes,\n}: ICommonCard) => {\n const subStyles = cardSubStyles();\n const SubHeader = () => {\n return (\n \n \n
\n
\n \n {metricValue}\n {metricUnit} \n \n
\n {subMessage && (\n
\n {subMessage.message}\n
\n )}\n
\n
{rightComponent}
\n
\n \n );\n };\n\n const Header = () => {\n return (\n \n \n {title} \n {moreLink && (\n \n \n View All\n \n \n )}\n
\n \n );\n };\n\n return (\n \n \n {metricValue !== \"\" && (\n }\n subheader={\n \n \n \n }\n classes={{\n root: subStyles.root,\n title: subStyles.title,\n content: subStyles.content,\n }}\n />\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(CommonCard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport CommonCard from \"../CommonCard\";\n\ninterface IMergedWidgets {\n title: string;\n leftComponent: any;\n rightComponent: any;\n}\n\nconst MergedWidgets = ({\n title,\n leftComponent,\n rightComponent,\n}: IMergedWidgets) => {\n return (\n \n \n \n );\n};\n\nexport default MergedWidgets;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { IDashboardPanel } from \"../types\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { useDispatch } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\nconst EntityStateStatItem = ({\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n statLabel,\n}: {\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n statLabel: any;\n}) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, dispatch, apiPrefix]);\n\n let toRender = loading ? (\n \n \n \n ) : (\n \n {data} \n {statLabel}\n \n );\n\n return toRender;\n};\n\nexport default EntityStateStatItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\nconst DualStatCard = ({\n statItemLeft = null,\n statItemRight = null,\n icon = null,\n label = \"\",\n}: {\n statItemLeft: any;\n statItemRight: any;\n icon: any;\n label: string;\n}) => {\n const getContent = () => {\n return (\n \n \n \n {label}\n \n\n \n {statItemLeft}\n {statItemRight}\n \n \n \n {icon}\n \n \n );\n };\n\n return (\n \n {getContent()}\n \n );\n};\n\nexport default DualStatCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport EntityStateStatItem from \"./EntityStateStatItem\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon, DrivesIcon, ServersIcon } from \"../../../../../icons\";\nimport DualStatCard from \"./DualStatCard\";\nimport { IDashboardPanel } from \"../types\";\n\nconst EntityStateItemRenderer = ({\n info,\n timeStart,\n timeEnd,\n loading,\n apiPrefix,\n}: {\n info: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n loading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [], id } = info;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const lStatItem = (\n \n \n Online
\n \n }\n />\n );\n const rStatItem = (\n \n \n Offline
\n \n }\n />\n );\n\n let statIcon = null;\n let statLabel = \"\";\n if (id === 500) {\n statIcon = ;\n statLabel = \"Servers\";\n } else if (id === 501) {\n statIcon = ;\n statLabel = \"Drives\";\n }\n\n return (\n \n );\n};\nexport default EntityStateItemRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { NetworkGetIcon } from \"../../../../../icons\";\n\nconst NetworkGetItem = ({\n value,\n loading,\n}: {\n value: any;\n loading: boolean;\n title?: any;\n id?: number;\n}) => {\n return (\n \n \n \n GET\n \n {loading ? (\n \n ) : (\n \n )}\n \n \n {value}\n \n \n );\n};\n\nexport default NetworkGetItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { NetworkPutIcon } from \"../../../../../icons\";\n\nconst NetworkPutItem = ({\n value,\n loading,\n}: {\n value: any;\n loading: boolean;\n title?: any;\n id?: number;\n}) => {\n return (\n \n \n \n PUT\n \n {loading ? (\n \n ) : (\n \n )}\n \n \n {value}\n \n \n );\n};\n\nexport default NetworkPutItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IDashboardPanel } from \"../types\";\nimport { Box } from \"@mui/material\";\nimport { SpeedtestIcon } from \"../../../../../icons\";\nimport SingleValueWidget from \"./SingleValueWidget\";\nimport NetworkGetItem from \"./NetworkGetItem\";\nimport NetworkPutItem from \"./NetworkPutItem\";\n\nconst NetworkItem = ({\n value,\n timeStart,\n timeEnd,\n propLoading,\n apiPrefix,\n}: {\n value: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [] } = value;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const rightCmp = (\n {\n return (\n \n );\n }}\n />\n );\n const leftCmp = (\n {\n return (\n \n );\n }}\n />\n );\n\n return (\n \n \n Network\n \n \n \n {leftCmp}\n \n \n \n \n {rightCmp}\n \n \n \n \n \n \n );\n};\n\nexport default NetworkItem;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { componentToUse } from \"../widgetUtils\";\nimport MergedWidgets from \"../MergedWidgets\";\nimport { IDashboardPanel } from \"../types\";\nimport EntityStateItemRenderer from \"./EntityStateItemRenderer\";\nimport NetworkItem from \"./NetworkItem\";\nimport DashboardItemBox from \"../../DashboardItemBox\";\n\nconst MergedWidgetsRenderer = ({\n info,\n timeStart,\n timeEnd,\n loading,\n apiPrefix,\n}: {\n info: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n loading: boolean;\n apiPrefix: string;\n}) => {\n const { mergedPanels = [], title = \"\", id } = info;\n const [leftPanel, rightPanel] = mergedPanels;\n\n const renderById = () => {\n if ([500, 501].includes(id)) {\n return (\n \n \n \n );\n }\n\n if (id === 502) {\n return (\n \n \n \n );\n }\n\n return (\n \n );\n };\n\n return renderById();\n};\n\nexport default MergedWidgetsRenderer;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box } from \"@mui/material\";\nimport {\n actionsTray,\n widgetContainerCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"./types\";\nimport { getWidgetsWithValue, panelsConfiguration } from \"./utils\";\nimport { TabPanel } from \"../../../shared/tabs\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\n\nimport TabSelector from \"../../Common/TabSelector/TabSelector\";\nimport { componentToUse } from \"./widgetUtils\";\nimport ZoomWidget from \"./ZoomWidget\";\nimport { AppState } from \"../../../../store\";\nimport DateRangeSelector from \"../../Common/FormComponents/DateRangeSelector/DateRangeSelector\";\nimport {\n DLayoutColumnProps,\n DLayoutRowProps,\n resourcesPanelsLayout,\n RowPanelLayout,\n summaryPanelsLayout,\n trafficPanelsLayout,\n} from \"./Widgets/LayoutUtil\";\nimport MergedWidgetsRenderer from \"./Widgets/MergedWidgetsRenderer\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\n\ninterface IPrDashboard {\n classes?: any;\n apiPrefix?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n dashboardRow: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n flexWrap: \"wrap\",\n },\n });\n\nconst PrDashboard = ({ apiPrefix = \"admin\" }: IPrDashboard) => {\n const dispatch = useDispatch();\n const zoomOpen = useSelector(\n (state: AppState) => state.dashboard.zoom.openZoom\n );\n const zoomWidget = useSelector(\n (state: AppState) => state.dashboard.zoom.widgetRender\n );\n\n const [timeStart, setTimeStart] = useState(null);\n const [timeEnd, setTimeEnd] = useState(null);\n const [loading, setLoading] = useState(true);\n const [panelInformation, setPanelInformation] =\n useState(panelsConfiguration);\n const [curTab, setCurTab] = useState(0);\n\n const getPanelDetails = (id: number) => {\n return panelInformation.find((panel) => panel.id === id);\n };\n\n const fetchUsage = useCallback(() => {\n let stepCalc = 0;\n\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n if (res.widgets) {\n const widgetsWithValue = getWidgetsWithValue(res.widgets);\n setPanelInformation(widgetsWithValue);\n } else {\n dispatch(\n setErrorSnackMessage({\n errorMessage:\n \"Widget information could not be retrieved at this time. Please try again\",\n detailedError: \"\",\n })\n );\n }\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }, [timeStart, timeEnd, dispatch, apiPrefix]);\n\n const triggerLoad = () => {\n setLoading(true);\n };\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const renderCmpByConfig = (\n panelInfo: IDashboardPanel | undefined,\n key: string\n ) => {\n return (\n \n {panelInfo ? (\n \n {panelInfo.mergedPanels ? (\n \n ) : (\n componentToUse(panelInfo, timeStart, timeEnd, loading, apiPrefix)\n )}\n \n ) : null}\n \n );\n };\n\n const renderPanelItems = (layoutRows: DLayoutRowProps[]) => {\n return layoutRows.reduce((prev: any[], rowItem, rIdx) => {\n const { columns = [] } = rowItem;\n const cellItems: any[] = columns.map(\n (cellItem: DLayoutColumnProps, colIdx: number) => {\n const panelInfo = getPanelDetails(cellItem.componentId);\n return renderCmpByConfig(panelInfo, `${rIdx}-${colIdx}`);\n }\n );\n const rowConfig = (\n \n {cellItems}\n \n );\n return [...prev, rowConfig];\n }, []);\n };\n\n const renderSummaryPanels = () => {\n return renderPanelItems(summaryPanelsLayout);\n };\n\n const renderTrafficPanels = () => {\n return renderPanelItems(trafficPanelsLayout);\n };\n\n const renderResourcesPanels = () => {\n return renderPanelItems(resourcesPanelsLayout);\n };\n\n return (\n \n {zoomOpen && (\n \n )}\n\n \n {\n setCurTab(newValue);\n }}\n tabOptions={[\n { label: \"Usage\" },\n { label: \"Traffic\" },\n { label: \"Resources\" },\n ]}\n />\n \n \n \n \n \n \n \n {panelInformation.length ? renderSummaryPanels() : null}\n \n \n \n \n {panelInformation.length ? renderTrafficPanels() : null}\n \n \n \n \n {panelInformation.length ? renderResourcesPanels() : null}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PrDashboard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ServerInfo } from \"../types\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\nimport get from \"lodash/get\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n getDriveStatusColor,\n getNetworkStatusColor,\n serverStatusColor,\n} from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n server: ServerInfo;\n index: number;\n}\n\nconst ServerStatItem = ({\n label = \"\",\n value = \"\",\n statusColor = \"\",\n hasStatus = false,\n}: {\n label?: string;\n value?: any;\n hasStatus?: boolean;\n statusColor: string | undefined;\n}) => {\n return (\n \n \n \n {value}{\" \"}\n \n {hasStatus ? (\n \n \n \n ) : (\n \n )}\n \n
\n {label}
\n \n \n );\n};\n\nconst ServerInfoItem = ({ server }: ICardProps) => {\n const networkKeys = Object.keys(get(server, \"network\", {}));\n const networkTotal = networkKeys.length;\n const totalDrives = server.drives ? server.drives.length : 0;\n const activeNetwork = networkKeys.reduce((acc: number, currValue: string) => {\n const item = server.network[currValue];\n if (item === \"online\") {\n return acc + 1;\n }\n return acc;\n }, 0);\n const activeDisks = server.drives\n ? server.drives.filter((element) => element.state === \"ok\").length\n : 0;\n return (\n \n \n \n \n {server.endpoint || \"\"}\n \n {server?.state && (\n \n \n \n )}\n \n\n \n \n \n\n \n \n \n Version: \n {server.version ? server.version : \"N/A\"}\n \n }\n />\n \n \n );\n};\nexport default withStyles(styles)(ServerInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IDriveInfo } from \"../types\";\nimport {\n capacityColors,\n niceBytes,\n niceBytesInt,\n} from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CircleIcon } from \"../../../../icons\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { STATUS_COLORS } from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n drive: IDriveInfo;\n}\n\nconst driveStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"ok\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\n\nconst DriveInfoItem = ({ drive }: ICardProps) => {\n const freeSpace = drive.totalSpace - drive.usedSpace;\n\n const plotValues = [\n { value: freeSpace, color: \"#D6D6D6\", label: \"Free Space\" },\n {\n value: drive.usedSpace,\n color: capacityColors(drive.usedSpace, drive.totalSpace),\n label: \"Used Space\",\n },\n ];\n return (\n \n \n \n {drive.endpoint || \"\"}
\n {drive.state && }\n \n\n \n \n \n
\n {niceBytesInt(drive.usedSpace)}\n \n
\n
\n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n
\n
\n \n\n \n \n \n {niceBytes(\n drive.totalSpace ? drive.totalSpace.toString() : \"0\"\n )}\n
\n Capacity \n \n\n \n \n {niceBytes(drive.usedSpace ? drive.usedSpace.toString() : \"0\")}\n
\n Used \n \n \n \n {niceBytes(\n drive.availableSpace ? drive.availableSpace.toString() : \"0\"\n )}\n
\n Available \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(DriveInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport Collapse from \"@mui/material/Collapse\";\nimport { ServerInfo } from \"../types\";\nimport ServerInfoItem from \"./ServerInfoItem\";\nimport { Box } from \"@mui/material\";\nimport DriveInfoItem from \"./DriveInfoItem\";\nimport {\n MenuCollapsedIcon,\n MenuExpandedIcon,\n} from \"../../../../icons/SidebarMenus\";\n\nconst ServersList = ({ data }: { data: ServerInfo[] }) => {\n const [expanded, setExpanded] = React.useState(\n data.length > 1 ? \"\" : data[0].endpoint + \"-0\"\n );\n\n const handleClick = (key: string) => {\n setExpanded(key);\n };\n\n return (\n \n \n Servers ({data.length})\n \n \n {data.map((serverInfo, index) => {\n const key = `${serverInfo.endpoint}-${index}`;\n const isExpanded = expanded === key;\n return (\n \n {\n if (!isExpanded) {\n handleClick(key);\n } else {\n handleClick(\"\");\n }\n }}\n className={isExpanded ? \"expanded\" : \"\"}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n border: \"1px solid #f1f1f1\",\n padding: \"3px 10px 3px 10px\",\n\n \"&:hover\": {\n background: \"#bebbbb0d\",\n },\n }}\n >\n \n \n {isExpanded ? (\n \n ) : (\n \n )}\n \n \n {isExpanded ? (\n \n \n Drives ({serverInfo.drives.length})\n \n\n \n {serverInfo.drives.map((driveInfo, index) => {\n return (\n \n );\n })}\n \n \n ) : null}\n \n );\n })}\n
\n \n );\n};\n\nexport default ServersList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\n\nconst CounterCard = ({\n counterValue,\n label = \"\",\n icon = null,\n actions = null,\n loading = false,\n}: {\n counterValue: string | number;\n label?: any;\n icon?: any;\n actions?: any;\n loading?: boolean;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n {counterValue}\n \n \n \n \n {icon}\n\n {actions} \n \n \n \n );\n};\n\nexport default CounterCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\n\nconst ReportedUsage = ({\n usageValue,\n total,\n unit,\n}: {\n usageValue: string;\n total: number | string;\n unit: string;\n}) => {\n const plotValues = [\n { value: total, color: \"#D6D6D6\", label: \"Free Space\" },\n {\n value: usageValue,\n color: \"#073052\",\n label: \"Used Space\",\n },\n ];\n\n return (\n \n \n \n Reported Usage \n
\n\n \n \n {total}\n \n \n {unit} \n \n\n \n \n \n
\n
\n \n {plotValues.map((entry, index) => (\n | \n ))}\n \n \n
\n
\n \n \n \n );\n};\n\nexport default ReportedUsage;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n ArrowRightIcon,\n BucketsIcon,\n DrivesIcon,\n HealIcon,\n PrometheusErrorIcon,\n ServersIcon,\n TotalObjectsIcon,\n UptimeIcon,\n} from \"../../../../icons\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { calculateBytes, representationNumber } from \"../../../../common/utils\";\nimport { IDriveInfo, Usage } from \"../types\";\nimport StatusCountCard from \"./StatusCountCard\";\nimport groupBy from \"lodash/groupBy\";\nimport ServersList from \"./ServersList\";\nimport CounterCard from \"./CounterCard\";\nimport ReportedUsage from \"./ReportedUsage\";\nimport { DiagnosticsMenuIcon } from \"../../../../icons/SidebarMenus\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { Link } from \"react-router-dom\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport TimeStatItem from \"../TimeStatItem\";\n\nconst BoxItem = ({ children }: { children: any }) => {\n return (\n \n {children}\n \n );\n};\n\ninterface IDashboardProps {\n usage: Usage | null;\n}\n\nconst getServersList = (usage: Usage | null) => {\n if (usage !== null) {\n return usage.servers.sort(function (a, b) {\n const nameA = a.endpoint.toLowerCase();\n const nameB = b.endpoint.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n }\n\n return [];\n};\n\nconst prettyUsage = (usage: string | undefined) => {\n if (usage === undefined) {\n return { total: \"0\", unit: \"Mi\" };\n }\n\n return calculateBytes(usage);\n};\n\nconst BasicDashboard = ({ usage }: IDashboardProps) => {\n const usageValue = usage && usage.usage ? usage.usage.toString() : \"0\";\n const usageToRepresent = prettyUsage(usageValue);\n\n const { lastScan = \"n/a\", lastHeal = \"n/a\", upTime = \"n/a\" } = usage || {};\n\n const serverList = getServersList(usage || null);\n\n let allDrivesArray: IDriveInfo[] = [];\n\n serverList.forEach((server) => {\n const drivesInput = server.drives.map((drive) => {\n return drive;\n });\n\n allDrivesArray = [...allDrivesArray, ...drivesInput];\n });\n\n const serversGroup = groupBy(serverList, \"state\");\n const { offline: offlineServers = [], online: onlineServers = [] } =\n serversGroup;\n const drivesGroup = groupBy(allDrivesArray, \"state\");\n const { offline: offlineDrives = [], ok: onlineDrives = [] } = drivesGroup;\n\n return (\n \n \n \n {usage?.prometheusNotReady && (\n }\n title={\"We can't retrieve advanced metrics at this time\"}\n help={\n \n MinIO Dashboard will display basic metrics as we couldn't\n connect to Prometheus successfully.\n \n Please try again in a few minutes. If the problem persists,\n you can review your configuration and confirm that Prometheus\n server is up and running.\n \n }\n />\n )}\n\n {!usage?.prometheusNotReady && (\n }\n title={\"We can’t retrieve advanced metrics at this time.\"}\n help={\n \n \n MinIO Dashboard will display basic metrics as we couldn’t\n connect to Prometheus successfully. Please try again in a\n few minutes. If the problem persists, you can review your\n configuration and confirm that Prometheus server is up and\n running.\n \n theme.colors.link,\n },\n }}\n >\n \n Read more about Prometheus on our Docs site.\n \n \n \n }\n />\n )}\n \n\n \n \n \n }\n counterValue={usage ? representationNumber(usage.buckets) : 0}\n actions={\n \n {}}\n text={\"Browse\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n }\n />\n \n \n }\n counterValue={usage ? representationNumber(usage.objects) : 0}\n />\n \n\n \n }\n />\n \n \n }\n />\n \n\n \n \n\n \n }\n label={\n \n \n Time since last\n {\" \"}\n Heal Activity\n \n }\n value={lastHeal}\n />\n }\n label={\n \n \n Time since last\n {\" \"}\n Scan Activity\n \n }\n value={lastScan}\n />\n }\n label={\"Uptime\"}\n value={upTime}\n />\n \n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default BasicDashboard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useDispatch } 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\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport BasicDashboard from \"./BasicDashboard/BasicDashboard\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\n\ninterface IDashboardSimple {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Dashboard = ({ classes }: IDashboardSimple) => {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [basicResult, setBasicResult] = useState(null);\n\n const fetchUsage = useCallback(() => {\n api\n .invoke(\"GET\", `/api/v1/admin/info`)\n .then((res: Usage) => {\n setBasicResult(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n });\n }, [setBasicResult, setLoading, dispatch]);\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const widgets = get(basicResult, \"widgets\", null);\n\n return (\n \n \n {loading ? (\n \n \n \n \n \n ) : (\n \n {widgets !== null ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(Dashboard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n value: any;\n}\n\nexport const TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n\n return (\n \n {value === index && {children} }\n
\n );\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","DateFilterAdornIcon","sx","actionsTray","widgetContainerCommon","syncButton","schedulerIcon","opacity","selectorLabel","color","whiteSpace","marginLeft","timeStart","setTimeStart","timeEnd","setTimeEnd","triggerSync","label","startLabel","endLabel","WebkitTextFillColor","md","gridTemplateColumns","sm","padding","gap","fill","value","onChange","id","classNamePrefix","forFilterContained","noInputIcon","openPickerIcon","justifyContent","type","variant","onClick","endIcon","dateSelectorOverride","borderBottom","borderColor","dateSelectorFilterOverride","dateSelectorFormOverride","maxWidth","parentDateOverride","flexGrow","textBoxContainer","openListIcon","marginTop","paperOverride","margin","textAlign","palette","primary","main","minHeight","borderTop","content","position","top","left","fieldBasic","tooltipHelper","forSearchBlock","tooltip","required","disabled","adornment","startAdornment","endAdornment","classOverridden","clsName","inputItem","dateAdapter","AdapterMoment","InputProps","components","OpenPickerIcon","renderInput","props","ampm","PopperProps","containerCls","fieldContainer","Fragment","htmlFor","inputLabel","tooltipContainer","placement","deleteDialogStyles","customDialogSize","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","dispatch","useDispatch","useState","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","onlineCount","offlineCount","icon","okStatusText","notOkStatusText","fontFamily","cursor","flex","flexFlow","xl","lg","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","widgetType","colorsMain","niceDaysFromNS","seconds","niceDays","roundNumber","parseInt","toString","panelsConfiguration","data","simpleWidget","widgetIcon","labelDisplayFunction","dataOuter","name","widgetConfiguration","outerChart","colorList","innerRadius","outerRadius","startAngle","endAngle","innerChart","pieChart","innerLabel","niceBytes","dataKey","keyLabel","lineColor","fillColor","areaGraph","yAxisFormatter","xAxisFormatter","getTimeFromTimestamp","background","greatestColor","customStructure","originTag","displayTag","barChart","singleRep","strokeWidth","linearGraph","HealIcon","DiagnosticsIcon","disableYAxis","mergedPanels","singleValue","calculateMainValue","elements","metricCalc","sumValues","reduce","accumulator","currValue","parseFloat","Math","floor","sortResult","sort","value1","value2","widgetDetailsToPanel","payloadData","panelItem","typeOfPayload","get","valueDisplay","chartSeries","filter","seriesItem","values","map","chartTarget","result","Array","isArray","elementValue","metricKeyItem","Object","keys","metric","metricName","legend","legendFormat","firstTarget","totalValues","targets","series","plotValues","forEach","targetMaster","index","results","itemVals","labelName","metrics","keysToReplace","expToReplace","RegExp","join","replacedLegend","replace","matchItem","nwMatchItem","countVarsOpen","match","countVarsClose","cleanLegend","element","constructLabelNames","keyName","push","valInfo","itemIndex","findIndex","itemToPush","seriesWithColors","series1","series2","serialC","textToRGBColor","sortedVals","chartBars","sortFunction","structureItem","metricTake","find","lastValue","a","valuesForBackground","eachVal","splitSizeMetric","val","splittedText","split","vl","isNaN","representationNumber","units","tabSubStyles","makeStyles","tabRoot","selected","indicator","scroller","selectedTab","tabOptions","subStyles","Tabs","indicatorColor","textColor","scrollButtons","e","newValue","option","Tab","key","tooltipCommon","active","payload","barChartConfiguration","customTooltip","timeStampTitle","pl","labelContainer","labelColor","style","itemValue","valueContainer","Box","href","rel","preventDefault","openZoomPage","ZoomOutMap","Z","CustomizedAxisTick","y","textAnchor","transform","dy","widgetCommon","loadingAlign","propLoading","apiPrefix","zoomActivated","loading","setLoading","setData","setResult","stepCalc","secondsInPeriod","unix","periods","api","then","res","widgetsWithValue","catch","err","setErrorSnackMessage","greatestIndex","currentValue","dataGraph","useTheme","biggerThanMd","useMediaQuery","breakpoints","up","singleValueContainer","titleContainer","Loader","zoomChartCont","contentContainer","ResponsiveContainer","BarChart","layout","barCategoryGap","XAxis","hide","YAxis","interval","tick","tickLine","axisLine","bar","Bar","barSize","_","Cell","Tooltip","linearConfiguration","verticalAlignment","flexDirection","chartCont","legendChart","maxHeight","overflowY","hideYAxis","areaWidget","dataMax","setDataMax","maxVal","dp","intervalCount","CustomizedDot","prop","cx","cy","r","AreaChart","right","bottom","x1","y1","x2","y2","offset","stopColor","stopOpacity","CartesianGrid","strokeDasharray","strokeOpacity","stroke","vertical","tickFormatter","tickCount","domain","section","Area","isAnimationActive","fillOpacity","strokeLinecap","dot","wrapperStyle","zIndex","singleLegendContainer","colorContainer","legendLabel","pieChartLabel","chartContainer","dataInner","setDataInner","setDataOuter","pieChartConfiguration","middleLabel","innerColors","outerColors","PieChart","Pie","entry","connector","connect","mainWidgetContainer","widgetLabel","textTransform","widgetValue","iconWidget","renderFn","valueToRender","overflow","enterDelay","textOverflow","repNumber","resultRep","lineHeight","titleElement","containerAlignment","totalUsableFree","setTotalUsableFree","totalUsed","setTotalUsed","totalUsable","setTotalUsable","tUsable","tUsed","tFree","eachArray","itemSum","usedConvert","calculateBytes","capacityColors","alignSelf","niceBytesInt","animationDuration","total","unit","componentToUse","CmpToRender","HealActivityRenderer","ScanActivityRenderer","UptimeActivityRenderer","includes","ModalWrapper","closeZoomPage","summaryPanelsLayout","minWidth","columns","componentId","trafficPanelsLayout","flexShrink","resourcesPanelsLayout","RowPanelLayout","cardSubStyles","cardRoot","metricText","unitText","subHearderContainer","subMessage","headerContainer","viewAll","extraMargin","metricValue","metricUnit","moreLink","rightComponent","SubHeader","leftSide","rightSide","Header","to","Card","CardHeader","subheader","leftComponent","statLabel","statItemLeft","statItemRight","info","leftPanel","rightPanel","lStatItem","rStatItem","statIcon","rightCmp","leftCmp","dashboardRow","flexWrap","zoomOpen","dashboard","zoom","openZoom","zoomWidget","widgetRender","panelInformation","setPanelInformation","curTab","setCurTab","fetchUsage","useCallback","widgets","panelT","toLowerCase","trim","errorMessage","detailedError","renderPanelItems","layoutRows","prev","rowItem","rIdx","cellItems","cellItem","colIdx","panelInfo","renderCmpByConfig","panel","rowConfig","PageLayout","Grid","DateRangeSelector","ServerStatItem","statusColor","hasStatus","commonDashboardInfocard","server","networkKeys","drives","acc","network","endpoint","uptime","version","driveStatusColor","drive","totalSpace","usedSpace","wordBreak","availableSpace","React","expanded","setExpanded","handleClick","List","component","serverInfo","isExpanded","ListItemButton","ListSubheader","Collapse","in","timeout","unmountOnExit","driveInfo","counterValue","actions","usageValue","BoxItem","usage","usageToRepresent","undefined","prettyUsage","lastScan","lastHeal","upTime","serverList","servers","b","nameA","nameB","getServersList","allDrivesArray","drivesInput","serversGroup","groupBy","offline","offlineServers","online","onlineServers","drivesGroup","offlineDrives","ok","onlineDrives","gridTemplateRows","prometheusNotReady","HelpBox","colors","link","target","buckets","IAM_PAGES","textDecoration","RBIconButton","text","objects","StatusCountCard","gridRowStart","gridRowEnd","gridColumnStart","containerForHeader","spacing","basicResult","setBasicResult","PageHeader","LinearProgress","TabPanel","other","role","hidden"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1199.6d35fa41.chunk.js b/portal-ui/build/static/js/1199.6d35fa41.chunk.js
new file mode 100644
index 000000000..5e7e19516
--- /dev/null
+++ b/portal-ui/build/static/js/1199.6d35fa41.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1199],{65935:function(e,t,n){n.r(t),n.d(t,{default:function(){return I}});var i=n(29439),o=n(1413),s=n(72791),r=n(16871),a=n(11135),c=n(25787),l=n(23814),d=n(61889),u=n(64554),p=n(36151),x=n(3923),h=n(92217),m=n(32291),f=n(74794),v=n(21435),y=n(37516),j=n(80184),g=function(e){var t=e.icon,n=e.description;return(0,j.jsxs)(u.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,j.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:n})]})},Z=function(){return(0,j.jsxs)(u.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:[(0,j.jsxs)(u.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,j.jsx)(x.M9A,{}),(0,j.jsx)("div",{children:"Learn more about Service Accounts"})]}),(0,j.jsxs)(u.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:[(0,j.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,j.jsx)(g,{icon:(0,j.jsx)(x.nO6,{}),description:"Create Service Accounts"}),(0,j.jsx)(u.Z,{sx:{paddingTop:"20px"},children:"Service Accounts inherit the policies explicitly attached to the parent user, and the policies attached to each group in which the parent user has membership."})]}),(0,j.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,j.jsx)(g,{icon:(0,j.jsx)(x.tvm,{}),description:"Assign Custom Credentials"}),(0,j.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"Randomized access credentials are recommended, and provided by default. You may use your own custom Access Key and Secret Key by replacing the default values. After creation of any Service Account, you will be given the opportunity to view and download the account credentials."}),(0,j.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"Service Accounts support programmatic access by applications. You cannot use a Service Account to log into the MinIO Console."})]}),(0,j.jsxs)(u.Z,{sx:{paddingBottom:"20px"},children:[(0,j.jsx)(g,{icon:(0,j.jsx)(x.v42,{}),description:"Assign Access Policies"}),(0,j.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."}),(0,j.jsx)(u.Z,{sx:{paddingTop:"10px"},children:"You cannot modify the optional Service Account IAM policy after saving."})]})]}),(0,j.jsx)(u.Z,{sx:{display:"flex",flexFlow:"column"}})]})},b=n(84669),S=n(3579),w=n(20165),A=n(56087),C=n(81207),P=n(37798),N=n(50896),K=n(84741),M=n(60680),T=n(87995),E=n(81551),I=(0,c.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}}},l.DF),l.ID))}))((function(e){var t=e.classes,n=(0,E.TL)(),o=(0,r.s0)(),a=(0,s.useState)(!1),c=(0,i.Z)(a,2),l=c[0],g=c[1],I=(0,s.useState)((0,K.z)(16)),k=(0,i.Z)(I,2),O=k[0],B=k[1],z=(0,s.useState)((0,K.z)(32)),F=(0,i.Z)(z,2),L=F[0],R=F[1],D=(0,s.useState)(!1),Y=(0,i.Z)(D,2),J=Y[0],_=Y[1],W=(0,s.useState)(null),H=(0,i.Z)(W,2),V=H[0],U=H[1],G=(0,s.useState)(!1),Q=(0,i.Z)(G,2),q=Q[0],X=Q[1],$=(0,s.useState)(""),ee=(0,i.Z)($,2),te=ee[0],ne=ee[1];(0,s.useEffect)((function(){l&&C.Z.invoke("POST","/api/v1/service-account-credentials",{policy:te,accessKey:O,secretKey:L}).then((function(e){g(!1),U({accessKey:e.accessKey||"",secretKey:e.secretKey||"",url:e.url||""})})).catch((function(e){g(!1),n((0,T.Ih)(e))}))}),[l,g,n,te,O,L]),(0,s.useEffect)((function(){J&&C.Z.invoke("GET","/api/v1/user/policy").then((function(e){ne(JSON.stringify(JSON.parse(e),null,4))}))}),[J]);return(0,j.jsxs)(s.Fragment,{children:[null!==V&&(0,j.jsx)(P.default,{newServiceAccount:V,open:null!==V,closeModal:function(){U(null),o("".concat(A.gA.ACCOUNT))},entity:"Service Account"}),(0,j.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,j.jsx)(m.Z,{label:(0,j.jsx)(b.Z,{to:A.gA.ACCOUNT,label:"Service Accounts"})}),(0,j.jsx)(f.Z,{children:(0,j.jsxs)(u.Z,{sx:{display:"grid",padding:"25px",gap:"25px",gridTemplateColumns:{md:"2fr 1.2fr",xs:"1fr"},border:"1px solid #eaeaea"},children:[(0,j.jsxs)(u.Z,{children:[(0,j.jsx)(N.Z,{icon:(0,j.jsx)(x.tVY,{}),children:"Create Service Account"}),(0,j.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),g(!0)}(e)},children:(0,j.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",sx:{marginTop:1},children:[(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsx)(d.ZP,{container:!0,item:!0,spacing:"20",children:(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsxs)(d.ZP,{container:!0,children:[(0,j.jsx)(d.ZP,{item:!0,xs:1,children:(0,j.jsx)(x.tvm,{})}),(0,j.jsx)(d.ZP,{item:!0,children:(0,j.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",children:[(0,j.jsxs)(d.ZP,{item:!0,xs:12,children:[" ",(0,j.jsx)("div",{className:t.stackedInputs,children:(0,j.jsx)(v.Z,{value:O,label:"Access Key",id:"accessKey",name:"accessKey",placeholder:"Enter Access Key",onChange:function(e){B(e.target.value)}})})]}),(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsx)("div",{className:t.stackedInputs,children:(0,j.jsx)(v.Z,{value:L,label:"Secret Key",id:"secretKey",name:"secretKey",type:q?"text":"password",placeholder:"Enter Secret Key",onChange:function(e){R(e.target.value)},overlayIcon:q?(0,j.jsx)(w.Z,{}):(0,j.jsx)(S.Z,{}),overlayAction:function(){return X(!q)}})})})]})})]})})})}),(0,j.jsxs)(d.ZP,{container:!0,item:!0,spacing:"20",children:[(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsxs)(d.ZP,{container:!0,children:[(0,j.jsx)(d.ZP,{item:!0,xs:1,children:(0,j.jsx)(x.v42,{})}),(0,j.jsx)(d.ZP,{item:!0,xs:11,children:(0,j.jsx)(y.Z,{value:"serviceAccountPolicy",id:"serviceAccountPolicy",name:"serviceAccountPolicy",checked:J,onChange:function(e){_(e.target.checked)},label:"Restrict beyond user policy",tooltip:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."})})]})}),J&&(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:t.codeMirrorContainer,children:[(0,j.jsx)("div",{children:(0,j.jsx)(M.Z,{children:"Current User Policy - edit the JSON to remove permissions for this service account"})}),(0,j.jsx)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:(0,j.jsx)(h.Z,{value:te,onBeforeChange:function(e,t,n){ne(n)},editorHeight:"350px"})})]})]}),(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,j.jsx)(p.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){ne(""),U(null),B(""),R(""),X(!1)},children:"Clear"}),(0,j.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",children:"Create"})]})]})})]}),(0,j.jsx)(Z,{})]})})]})]})}))},37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var i=n(1413),o=n(72791),s=n(26181),r=n.n(s),a=n(11135),c=n(25787),l=n(56028),d=n(61889),u=n(77196),p=n(63466),x=n(85531),h=n(78029),m=n.n(h),f=n(3923),v=n(23814),y=n(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,i.Z)((0,i.Z)({},v.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,i=e.value,o=void 0===i?"":i,s=e.classes,r=void 0===s?{}:s;return(0,y.jsxs)("div",{className:r.container,children:[(0,y.jsxs)("div",{className:r.inputLabel,children:[n,":"]}),(0,y.jsx)("div",{className:r.inputWithCopy,children:(0,y.jsx)(u.Z,{value:o,readOnly:!0,endAdornment:(0,y.jsx)(p.Z,{position:"end",children:(0,y.jsx)(m(),{text:o,children:(0,y.jsx)(x.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,y.jsx)(f.TIy,{})})})})})})]})})),g=n(89357),Z=n(40603),b=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+t),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},S=(0,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"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,s=e.open,a=e.closeModal,c=e.entity;if(!n)return null;var u=r()(n,"console",null),p=r()(n,"idp",!1);return(0,y.jsx)(l.Z,{modalOpen:s,onClose:function(){a()},title:(0,y.jsx)("div",{className:t.promptTitle,children:(0,y.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,y.jsx)(f.tVY,{}),children:(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",c," has been created with the following details:",!p&&u&&(0,y.jsx)(o.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)(j,{label:"Access Key",value:e.accessKey}),(0,y.jsx)(j,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(j,{label:"Access Key",value:u.accessKey}),(0,y.jsx)(j,{label:"Secret Key",value:u.secretKey})]})]})}),(null===u||void 0===u)&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(j,{label:"Access Key",value:n.accessKey||""}),(0,y.jsx)(j,{label:"Secret Key",value:n.secretKey||""})]}),p?(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)(g.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:!p&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Z.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u?e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"}:e={url:n.url,accessKey:n.accessKey,secretKey:n.secretKey,api:"s3v4",path:"auto"};b("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,y.jsx)(f._8t,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,y.jsx)(Z.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,y.jsx)(f._8t,{}),variant:"contained",color:"primary"})]})})]})})}))},92217:function(e,t,n){var i=n(1413),o=n(72791),s=n(61889),r=n(30829),a=n(20068),c=n(64554),l=n(11135),d=n(25787),u=n(84570),p=n(23814),x=n(3923),h=n(40603),m=n(78029),f=n.n(m),v=n(85457),y=n(80184);t.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var t=e.value,n=e.label,i=void 0===n?"":n,l=e.tooltip,d=void 0===l?"":l,p=e.mode,m=void 0===p?"json":p,j=e.classes,g=e.onBeforeChange,Z=(e.readOnly,e.editorHeight),b=void 0===Z?"250px":Z;return(0,y.jsxs)(o.Fragment,{children:[(0,y.jsx)(s.ZP,{item:!0,xs:12,children:(0,y.jsxs)(r.Z,{className:j.inputLabel,children:[(0,y.jsx)("span",{children:i}),""!==d&&(0,y.jsx)("div",{className:j.tooltipContainer,children:(0,y.jsx)(a.Z,{title:d,placement:"top-start",children:(0,y.jsx)("div",{className:j.tooltip,children:(0,y.jsx)(u.Z,{})})})})]})}),(0,y.jsx)(s.ZP,{item:!0,xs:12,style:{maxHeight:b,overflow:"auto"},children:(0,y.jsx)(v.Z,{value:t,language:m,onChange:function(e){g(null,null,e.target.value)},padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,y.jsx)(s.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,y.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,y.jsx)(f(),{text:t,children:(0,y.jsx)(h.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,y.jsx)(x.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},56028:function(e,t,n){var i=n(29439),o=n(1413),s=n(72791),r=n(60364),a=n(13400),c=n(55646),l=n(5574),d=n(65661),u=n(39157),p=n(11135),x=n(25787),h=n(23814),m=n(81551),f=n(29823),v=n(28057),y=n(87995),j=n(80184);t.Z=(0,x.Z)((function(e){return(0,p.Z)((0,o.Z)((0,o.Z)({},h.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))((function(e){var t=e.onClose,n=e.modalOpen,p=e.title,x=e.children,h=e.classes,g=e.wideLimit,Z=void 0===g||g,b=e.noContentPadding,S=e.titleIcon,w=void 0===S?null:S,A=(0,m.TL)(),C=(0,s.useState)(!1),P=(0,i.Z)(C,2),N=P[0],K=P[1],M=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,s.useEffect)((function(){A((0,y.MK)(""))}),[A]),(0,s.useEffect)((function(){if(M){if(""===M.message)return void K(!1);"error"!==M.type&&K(!0)}}),[M]);var T=Z?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return M&&(E=M.detailedErrorMsg,(""===M.detailedErrorMsg||M.detailedErrorMsg.length<5)&&(E=M.message)),(0,j.jsxs)(l.Z,(0,o.Z)((0,o.Z)({open:n,classes:h},T),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:h.root,children:[(0,j.jsxs)(d.Z,{className:h.title,children:[(0,j.jsxs)("div",{className:h.titleText,children:[w," ",p]}),(0,j.jsx)("div",{className:h.closeContainer,children:(0,j.jsx)(a.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,j.jsx)(f.Z,{})})})]}),(0,j.jsx)(v.Z,{isModal:!0}),(0,j.jsx)(c.Z,{open:N,className:h.snackBarModal,onClose:function(){K(!1),A((0,y.MK)(""))},message:E,ContentProps:{className:"".concat(h.snackBar," ").concat(M&&"error"===M.type?h.errorSnackBar:"")},autoHideDuration:M&&"error"===M.type?1e4:5e3}),(0,j.jsx)(u.Z,{className:b?"":h.content,children:x})]}))}))},60680:function(e,t,n){n(72791);var i=n(11135),o=n(25787),s=n(80184);t.Z=(0,o.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})}))},3579:function(e,t,n){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:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");t.Z=r},20165:function(e,t,n){var i=n(95318);t.Z=void 0;var o=i(n(45649)),s=n(80184),r=(0,o.default)((0,s.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");t.Z=r},63466:function(e,t,n){n.d(t,{Z:function(){return b}});var i=n(4942),o=n(63366),s=n(87462),r=n(72791),a=n(28182),c=n(94419),l=n(14036),d=n(20890),u=n(93840),p=n(52930),x=n(66934),h=n(21217);function m(e){return(0,h.Z)("MuiInputAdornment",e)}var f,v=(0,n(75878).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),y=n(31402),j=n(80184),g=["children","className","component","disablePointerEvents","disableTypography","position","variant"],Z=(0,x.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,s.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active},"filled"===n.variant&&(0,i.Z)({},"&.".concat(v.positionStart,"&:not(.").concat(v.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),b=r.forwardRef((function(e,t){var n=(0,y.Z)({props:e,name:"MuiInputAdornment"}),i=n.children,x=n.className,h=n.component,v=void 0===h?"div":h,b=n.disablePointerEvents,S=void 0!==b&&b,w=n.disableTypography,A=void 0!==w&&w,C=n.position,P=n.variant,N=(0,o.Z)(n,g),K=(0,p.Z)()||{},M=P;P&&K.variant,K&&!M&&(M=K.variant);var T=(0,s.Z)({},n,{hiddenLabel:K.hiddenLabel,size:K.size,disablePointerEvents:S,position:C,variant:M}),E=function(e){var t=e.classes,n=e.disablePointerEvents,i=e.hiddenLabel,o=e.position,s=e.size,r=e.variant,a={root:["root",n&&"disablePointerEvents",o&&"position".concat((0,l.Z)(o)),r,i&&"hiddenLabel",s&&"size".concat((0,l.Z)(s))]};return(0,c.Z)(a,m,t)}(T);return(0,j.jsx)(u.Z.Provider,{value:null,children:(0,j.jsx)(Z,(0,s.Z)({as:v,ownerState:T,className:(0,a.Z)(E.root,x),ref:t},N,{children:"string"!==typeof i||A?(0,j.jsxs)(r.Fragment,{children:["start"===C?f||(f=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))},61120:function(e,t,n){function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}n.d(t,{Z:function(){return i}})},60136:function(e,t,n){n.d(t,{Z:function(){return o}});var i=n(89611);function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}},82963:function(e,t,n){n.d(t,{Z:function(){return s}});var i=n(71002),o=n(97326);function s(e,t){if(t&&("object"===(0,i.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,o.Z)(e)}}}]);
+//# sourceMappingURL=1199.6d35fa41.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1199.6d35fa41.chunk.js.map b/portal-ui/build/static/js/1199.6d35fa41.chunk.js.map
new file mode 100644
index 000000000..4c535a620
--- /dev/null
+++ b/portal-ui/build/static/js/1199.6d35fa41.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1199.6d35fa41.chunk.js","mappings":"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","sources":["screens/Console/Account/AddServiceAccountHelpBox.tsx","screens/Console/Account/AddServiceAccountScreen.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n HelpIconFilled,\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountIcon,\n} from \"../../../icons\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n
\n \n );\n};\nconst AddServiceAccountHelpBox = () => {\n return (\n \n \n \n Learn more about Service Accounts
\n \n \n \n }\n description={`Create Service Accounts`}\n />\n \n Service Accounts inherit the policies explicitly attached to the\n parent user, and the policies attached to each group in which the\n parent user has membership.\n \n \n \n }\n description={`Assign Custom Credentials`}\n />\n \n Randomized access credentials are recommended, and provided by\n default. You may use your own custom Access Key and Secret Key by\n replacing the default values. After creation of any Service Account,\n you will be given the opportunity to view and download the account\n credentials.\n \n \n Service Accounts support programmatic access by applications. You\n cannot use a Service Account to log into the MinIO Console.\n \n \n \n }\n description={`Assign Access Policies`}\n />\n \n You can specify an optional JSON-formatted IAM policy to further\n restrict Service Account access to a subset of the actions and\n resources explicitly allowed for the parent user. Additional access\n beyond that of the parent user cannot be implemented through these\n policies.\n \n \n You cannot modify the optional Service Account IAM policy after\n saving.\n \n \n \n \n \n );\n};\n\nexport default AddServiceAccountHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { useNavigate } from \"react-router-dom\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Button } from \"@mui/material\";\nimport {\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountCredentialsIcon,\n} from \"../../../icons\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport AddServiceAccountHelpBox from \"./AddServiceAccountHelpBox\";\nimport BackLink from \"../../../common/BackLink\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport { ErrorResponseHandler } from \"../../../../src/common/types\";\nimport api from \"../../../../src/common/api\";\nimport CredentialsPrompt from \"../Common/CredentialsPrompt/CredentialsPrompt\";\n\nimport SectionTitle from \"../Common/SectionTitle\";\nimport { getRandomString } from \"../../../screens/Console/Tenants/utils\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\n\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\ninterface IAddServiceAccountProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst AddServiceAccount = ({ classes }: IAddServiceAccountProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [addSending, setAddSending] = useState(false);\n const [accessKey, setAccessKey] = useState(getRandomString(16));\n const [secretKey, setSecretKey] = useState(getRandomString(32));\n const [isRestrictedByPolicy, setIsRestrictedByPolicy] =\n useState(false);\n const [newServiceAccount, setNewServiceAccount] =\n useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [policyJSON, setPolicyJSON] = useState(\"\");\n\n useEffect(() => {\n if (addSending) {\n api\n .invoke(\"POST\", `/api/v1/service-account-credentials`, {\n policy: policyJSON,\n accessKey: accessKey,\n secretKey: secretKey,\n })\n .then((res) => {\n setAddSending(false);\n setNewServiceAccount({\n accessKey: res.accessKey || \"\",\n secretKey: res.secretKey || \"\",\n url: res.url || \"\",\n });\n })\n\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n }, [addSending, setAddSending, dispatch, policyJSON, accessKey, secretKey]);\n\n useEffect(() => {\n if (isRestrictedByPolicy) {\n api.invoke(\"GET\", `/api/v1/user/policy`).then((res: string) => {\n setPolicyJSON(JSON.stringify(JSON.parse(res), null, 4));\n });\n }\n }, [isRestrictedByPolicy]);\n\n const addServiceAccount = (e: React.FormEvent) => {\n e.preventDefault();\n setAddSending(true);\n };\n\n const resetForm = () => {\n setPolicyJSON(\"\");\n setNewServiceAccount(null);\n setAccessKey(\"\");\n setSecretKey(\"\");\n setShowPassword(false);\n };\n\n const closeCredentialsModal = () => {\n setNewServiceAccount(null);\n navigate(`${IAM_PAGES.ACCOUNT}`);\n };\n\n return (\n \n {newServiceAccount !== null && (\n {\n closeCredentialsModal();\n }}\n entity=\"Service Account\"\n />\n )}\n \n }\n />\n \n \n \n }>\n Create Service Account\n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(AddServiceAccount);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n \n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n \n
New {entity} Created
\n
\n }\n titleIcon={ }\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n \n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n >\n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n >\n )}\n \n \n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n >\n )}\n {idp ? (\n \n Please Login via the configured external identity provider.\n
\n ) : (\n \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n >\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n \n {titleIcon} {title}\n
\n \n \n \n \n
\n \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return {children} ;\n};\n\nexport default withStyles(styles)(PanelTitle);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","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.vars || 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;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["FeatureItem","icon","description","Box","sx","display","marginRight","height","width","marginBottom","style","fontSize","fontStyle","color","flex","border","borderRadius","flexFlow","padding","marginTop","xs","fontWeight","alignItems","paddingBottom","paddingTop","withStyles","theme","createStyles","bottomContainer","flexGrow","margin","justifyContent","formFieldStyles","modalStyleUtils","classes","dispatch","useAppDispatch","navigate","useNavigate","useState","addSending","setAddSending","getRandomString","accessKey","setAccessKey","secretKey","setSecretKey","isRestrictedByPolicy","setIsRestrictedByPolicy","newServiceAccount","setNewServiceAccount","showPassword","setShowPassword","policyJSON","setPolicyJSON","useEffect","api","policy","then","res","url","catch","err","setErrorSnackMessage","JSON","stringify","parse","Fragment","CredentialsPrompt","open","closeModal","IAM_PAGES","entity","Grid","item","PageHeader","label","BackLink","to","PageLayout","gap","gridTemplateColumns","md","SectionTitle","noValidate","autoComplete","onSubmit","e","preventDefault","addServiceAccount","container","spacing","className","stackedInputs","InputBoxWrapper","value","id","name","placeholder","onChange","target","type","overlayIcon","VisibilityOff","RemoveRedEye","overlayAction","FormSwitchWrapper","checked","event","tooltip","codeMirrorContainer","PanelTitle","formScrollable","CodeMirrorWrapper","onBeforeChange","editor","data","editorHeight","modalButtonBar","Button","variant","onClick","inputWithCopy","background","inputLabel","fieldBasic","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","body","appendChild","click","removeChild","warningBlock","credentialTitle","buttonContainer","textAlign","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Array","isArray","map","credentialsPair","index","undefined","WarnIcon","RBIconButton","consoleExtras","itemMap","path","length","allCredentials","mode","tooltipContainer","placement","overflow","language","evn","backgroundColor","fontFamily","borderTop","paddingRight","marginLeft","deleteDialogStyles","content","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","props","styles","ownerState","capitalize","disablePointerEvents","_extends","whiteSpace","vars","palette","action","active","inputAdornmentClasses","pointerEvents","React","inProps","ref","useThemeProps","component","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","slots","composeClasses","useUtilityClasses","_jsx","FormControlContext","as","clsx","_jsxs","Typography","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1199.84ef2065.chunk.js b/portal-ui/build/static/js/1199.84ef2065.chunk.js
deleted file mode 100644
index c115f3aad..000000000
--- a/portal-ui/build/static/js/1199.84ef2065.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1199],{65935:function(e,t,n){n.r(t),n.d(t,{default:function(){return k}});var i=n(29439),o=n(1413),s=n(72791),r=n(11135),a=n(25787),c=n(23814),l=n(61889),d=n(64554),u=n(36151),p=n(51047),x=n(92217),h=n(32291),m=n(74794),f=n(62666),v=n(21435),y=n(37516),j=n(80184),g=function(e){var t=e.icon,n=e.description;return(0,j.jsxs)(d.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,j.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:n})]})},Z=function(){return(0,j.jsxs)(d.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:[(0,j.jsxs)(d.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,j.jsx)(p.M9A,{}),(0,j.jsx)("div",{children:"Learn more about Service Accounts"})]}),(0,j.jsxs)(d.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:[(0,j.jsxs)(d.Z,{sx:{paddingBottom:"20px"},children:[(0,j.jsx)(g,{icon:(0,j.jsx)(p.nO6,{}),description:"Create Service Accounts"}),(0,j.jsx)(d.Z,{sx:{paddingTop:"20px"},children:"Service Accounts inherit the policies explicitly attached to the parent user, and the policies attached to each group in which the parent user has membership."})]}),(0,j.jsxs)(d.Z,{sx:{paddingBottom:"20px"},children:[(0,j.jsx)(g,{icon:(0,j.jsx)(p.tvm,{}),description:"Assign Custom Credentials"}),(0,j.jsx)(d.Z,{sx:{paddingTop:"10px"},children:"Randomized access credentials are recommended, and provided by default. You may use your own custom Access Key and Secret Key by replacing the default values. After creation of any Service Account, you will be given the opportunity to view and download the account credentials."}),(0,j.jsx)(d.Z,{sx:{paddingTop:"10px"},children:"Service Accounts support programmatic access by applications. You cannot use a Service Account to log into the MinIO Console."})]}),(0,j.jsxs)(d.Z,{sx:{paddingBottom:"20px"},children:[(0,j.jsx)(g,{icon:(0,j.jsx)(p.v42,{}),description:"Assign Access Policies"}),(0,j.jsx)(d.Z,{sx:{paddingTop:"10px"},children:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."}),(0,j.jsx)(d.Z,{sx:{paddingTop:"10px"},children:"You cannot modify the optional Service Account IAM policy after saving."})]})]}),(0,j.jsx)(d.Z,{sx:{display:"flex",flexFlow:"column"}})]})},b=n(84669),S=n(3579),w=n(20165),A=n(56087),C=n(81207),P=n(37798),N=n(50896),K=n(84741),M=n(60680),I=n(60364),E=n(87995),k=(0,a.Z)((function(e){return(0,r.Z)((0,o.Z)((0,o.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}}},c.DF),c.ID))}))((function(e){var t=e.classes,n=(0,I.I0)(),o=(0,s.useState)(!1),r=(0,i.Z)(o,2),a=r[0],c=r[1],g=(0,s.useState)((0,K.z)(16)),k=(0,i.Z)(g,2),T=k[0],O=k[1],B=(0,s.useState)((0,K.z)(32)),z=(0,i.Z)(B,2),F=z[0],L=z[1],R=(0,s.useState)(!1),D=(0,i.Z)(R,2),Y=D[0],J=D[1],_=(0,s.useState)(null),W=(0,i.Z)(_,2),H=W[0],V=W[1],U=(0,s.useState)(!1),G=(0,i.Z)(U,2),Q=G[0],q=G[1],X=(0,s.useState)(""),$=(0,i.Z)(X,2),ee=$[0],te=$[1];(0,s.useEffect)((function(){a&&C.Z.invoke("POST","/api/v1/service-account-credentials",{policy:ee,accessKey:T,secretKey:F}).then((function(e){c(!1),V({accessKey:e.accessKey||"",secretKey:e.secretKey||"",url:e.url||""})})).catch((function(e){c(!1),n((0,E.Ih)(e))}))}),[a,c,n,ee,T,F]),(0,s.useEffect)((function(){Y&&C.Z.invoke("GET","/api/v1/user/policy").then((function(e){te(JSON.stringify(JSON.parse(e),null,4))}))}),[Y]);return(0,j.jsxs)(s.Fragment,{children:[null!==H&&(0,j.jsx)(P.default,{newServiceAccount:H,open:null!==H,closeModal:function(){V(null),f.Z.push("".concat(A.gA.ACCOUNT))},entity:"Service Account"}),(0,j.jsxs)(l.ZP,{item:!0,xs:12,children:[(0,j.jsx)(h.Z,{label:(0,j.jsx)(b.Z,{to:A.gA.ACCOUNT,label:"Service Accounts"})}),(0,j.jsx)(m.Z,{children:(0,j.jsxs)(d.Z,{sx:{display:"grid",padding:"25px",gap:"25px",gridTemplateColumns:{md:"2fr 1.2fr",xs:"1fr"},border:"1px solid #eaeaea"},children:[(0,j.jsxs)(d.Z,{children:[(0,j.jsx)(N.Z,{icon:(0,j.jsx)(p.tVY,{}),children:"Create Service Account"}),(0,j.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),c(!0)}(e)},children:(0,j.jsxs)(l.ZP,{container:!0,item:!0,spacing:"20",sx:{marginTop:1},children:[(0,j.jsx)(l.ZP,{item:!0,xs:12,children:(0,j.jsx)(l.ZP,{container:!0,item:!0,spacing:"20",children:(0,j.jsx)(l.ZP,{item:!0,xs:12,children:(0,j.jsxs)(l.ZP,{container:!0,children:[(0,j.jsx)(l.ZP,{item:!0,xs:1,children:(0,j.jsx)(p.tvm,{})}),(0,j.jsx)(l.ZP,{item:!0,children:(0,j.jsxs)(l.ZP,{container:!0,item:!0,spacing:"20",children:[(0,j.jsxs)(l.ZP,{item:!0,xs:12,children:[" ",(0,j.jsx)("div",{className:t.stackedInputs,children:(0,j.jsx)(v.Z,{value:T,label:"Access Key",id:"accessKey",name:"accessKey",placeholder:"Enter Access Key",onChange:function(e){O(e.target.value)}})})]}),(0,j.jsx)(l.ZP,{item:!0,xs:12,children:(0,j.jsx)("div",{className:t.stackedInputs,children:(0,j.jsx)(v.Z,{value:F,label:"Secret Key",id:"secretKey",name:"secretKey",type:Q?"text":"password",placeholder:"Enter Secret Key",onChange:function(e){L(e.target.value)},overlayIcon:Q?(0,j.jsx)(w.Z,{}):(0,j.jsx)(S.Z,{}),overlayAction:function(){return q(!Q)}})})})]})})]})})})}),(0,j.jsxs)(l.ZP,{container:!0,item:!0,spacing:"20",children:[(0,j.jsx)(l.ZP,{item:!0,xs:12,children:(0,j.jsxs)(l.ZP,{container:!0,children:[(0,j.jsx)(l.ZP,{item:!0,xs:1,children:(0,j.jsx)(p.v42,{})}),(0,j.jsx)(l.ZP,{item:!0,xs:11,children:(0,j.jsx)(y.Z,{value:"serviceAccountPolicy",id:"serviceAccountPolicy",name:"serviceAccountPolicy",checked:Y,onChange:function(e){J(e.target.checked)},label:"Restrict beyond user policy",tooltip:"You can specify an optional JSON-formatted IAM policy to further restrict Service Account access to a subset of the actions and resources explicitly allowed for the parent user. Additional access beyond that of the parent user cannot be implemented through these policies."})})]})}),Y&&(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:t.codeMirrorContainer,children:[(0,j.jsx)("div",{children:(0,j.jsx)(M.Z,{children:"Current User Policy - edit the JSON to remove permissions for this service account"})}),(0,j.jsx)(l.ZP,{item:!0,xs:12,className:t.formScrollable,children:(0,j.jsx)(x.Z,{value:ee,onBeforeChange:function(e,t,n){te(n)},editorHeight:"350px"})})]})]}),(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,j.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){te(""),V(null),O(""),L(""),q(!1)},children:"Clear"}),(0,j.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",children:"Create"})]})]})})]}),(0,j.jsx)(Z,{})]})})]})]})}))},37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var i=n(1413),o=n(72791),s=n(26181),r=n.n(s),a=n(11135),c=n(25787),l=n(56028),d=n(61889),u=n(77196),p=n(63466),x=n(85531),h=n(78029),m=n.n(h),f=n(51047),v=n(23814),y=n(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,i.Z)((0,i.Z)({},v.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,i=e.value,o=void 0===i?"":i,s=e.classes,r=void 0===s?{}:s;return(0,y.jsxs)("div",{className:r.container,children:[(0,y.jsxs)("div",{className:r.inputLabel,children:[n,":"]}),(0,y.jsx)("div",{className:r.inputWithCopy,children:(0,y.jsx)(u.Z,{value:o,readOnly:!0,endAdornment:(0,y.jsx)(p.Z,{position:"end",children:(0,y.jsx)(m(),{text:o,children:(0,y.jsx)(x.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,y.jsx)(f.TIy,{})})})})})})]})})),g=n(89357),Z=n(40603),b=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+t),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},S=(0,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"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,s=e.open,a=e.closeModal,c=e.entity;if(!n)return null;var u=r()(n,"console",null),p=r()(n,"idp",!1);return(0,y.jsx)(l.Z,{modalOpen:s,onClose:function(){a()},title:(0,y.jsx)("div",{className:t.promptTitle,children:(0,y.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,y.jsx)(f.tVY,{}),children:(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",c," has been created with the following details:",!p&&u&&(0,y.jsx)(o.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)(j,{label:"Access Key",value:e.accessKey}),(0,y.jsx)(j,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(j,{label:"Access Key",value:u.accessKey}),(0,y.jsx)(j,{label:"Secret Key",value:u.secretKey})]})]})}),(null===u||void 0===u)&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(j,{label:"Access Key",value:n.accessKey||""}),(0,y.jsx)(j,{label:"Secret Key",value:n.secretKey||""})]}),p?(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)(g.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:!p&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Z.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u?e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"}:e={url:n.url,accessKey:n.accessKey,secretKey:n.secretKey,api:"s3v4",path:"auto"};b("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,y.jsx)(f._8t,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,y.jsx)(Z.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,y.jsx)(f._8t,{}),variant:"contained",color:"primary"})]})})]})})}))},92217:function(e,t,n){var i=n(1413),o=n(72791),s=n(61889),r=n(30829),a=n(20068),c=n(64554),l=n(11135),d=n(25787),u=n(84570),p=n(23814),x=n(51047),h=n(40603),m=n(78029),f=n.n(m),v=n(85457),y=n(80184);t.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var t=e.value,n=e.label,i=void 0===n?"":n,l=e.tooltip,d=void 0===l?"":l,p=e.mode,m=void 0===p?"json":p,j=e.classes,g=e.onBeforeChange,Z=(e.readOnly,e.editorHeight),b=void 0===Z?"250px":Z;return(0,y.jsxs)(o.Fragment,{children:[(0,y.jsx)(s.ZP,{item:!0,xs:12,children:(0,y.jsxs)(r.Z,{className:j.inputLabel,children:[(0,y.jsx)("span",{children:i}),""!==d&&(0,y.jsx)("div",{className:j.tooltipContainer,children:(0,y.jsx)(a.Z,{title:d,placement:"top-start",children:(0,y.jsx)("div",{className:j.tooltip,children:(0,y.jsx)(u.Z,{})})})})]})}),(0,y.jsx)(s.ZP,{item:!0,xs:12,style:{maxHeight:b,overflow:"auto"},children:(0,y.jsx)(v.Z,{value:t,language:m,onChange:function(e){g(null,null,e.target.value)},padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,y.jsx)(s.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,y.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,y.jsx)(f(),{text:t,children:(0,y.jsx)(h.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,y.jsx)(x.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},56028:function(e,t,n){var i=n(29439),o=n(1413),s=n(72791),r=n(60364),a=n(13400),c=n(55646),l=n(5574),d=n(65661),u=n(39157),p=n(11135),x=n(25787),h=n(23814),m=n(29823),f=n(28057),v=n(87995),y=n(80184);t.Z=(0,x.Z)((function(e){return(0,p.Z)((0,o.Z)((0,o.Z)({},h.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))((function(e){var t=e.onClose,n=e.modalOpen,p=e.title,x=e.children,h=e.classes,j=e.wideLimit,g=void 0===j||j,Z=e.noContentPadding,b=e.titleIcon,S=void 0===b?null:b,w=(0,r.I0)(),A=(0,s.useState)(!1),C=(0,i.Z)(A,2),P=C[0],N=C[1],K=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,s.useEffect)((function(){w((0,v.MK)(""))}),[w]),(0,s.useEffect)((function(){if(K){if(""===K.message)return void N(!1);"error"!==K.type&&N(!0)}}),[K]);var M=g?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return K&&(I=K.detailedErrorMsg,(""===K.detailedErrorMsg||K.detailedErrorMsg.length<5)&&(I=K.message)),(0,y.jsxs)(l.Z,(0,o.Z)((0,o.Z)({open:n,classes:h},M),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:h.root,children:[(0,y.jsxs)(d.Z,{className:h.title,children:[(0,y.jsxs)("div",{className:h.titleText,children:[S," ",p]}),(0,y.jsx)("div",{className:h.closeContainer,children:(0,y.jsx)(a.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,y.jsx)(m.Z,{})})})]}),(0,y.jsx)(f.Z,{isModal:!0}),(0,y.jsx)(c.Z,{open:P,className:h.snackBarModal,onClose:function(){N(!1),w((0,v.MK)(""))},message:I,ContentProps:{className:"".concat(h.snackBar," ").concat(K&&"error"===K.type?h.errorSnackBar:"")},autoHideDuration:K&&"error"===K.type?1e4:5e3}),(0,y.jsx)(u.Z,{className:Z?"":h.content,children:x})]}))}))},60680:function(e,t,n){n(72791);var i=n(11135),o=n(25787),s=n(80184);t.Z=(0,o.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})}))},3579:function(e,t,n){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:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");t.Z=r},20165:function(e,t,n){var i=n(95318);t.Z=void 0;var o=i(n(45649)),s=n(80184),r=(0,o.default)((0,s.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");t.Z=r},63466:function(e,t,n){n.d(t,{Z:function(){return b}});var i=n(4942),o=n(63366),s=n(87462),r=n(72791),a=n(28182),c=n(94419),l=n(14036),d=n(20890),u=n(93840),p=n(52930),x=n(66934),h=n(21217);function m(e){return(0,h.Z)("MuiInputAdornment",e)}var f,v=(0,n(75878).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),y=n(31402),j=n(80184),g=["children","className","component","disablePointerEvents","disableTypography","position","variant"],Z=(0,x.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,s.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active},"filled"===n.variant&&(0,i.Z)({},"&.".concat(v.positionStart,"&:not(.").concat(v.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),b=r.forwardRef((function(e,t){var n=(0,y.Z)({props:e,name:"MuiInputAdornment"}),i=n.children,x=n.className,h=n.component,v=void 0===h?"div":h,b=n.disablePointerEvents,S=void 0!==b&&b,w=n.disableTypography,A=void 0!==w&&w,C=n.position,P=n.variant,N=(0,o.Z)(n,g),K=(0,p.Z)()||{},M=P;P&&K.variant,K&&!M&&(M=K.variant);var I=(0,s.Z)({},n,{hiddenLabel:K.hiddenLabel,size:K.size,disablePointerEvents:S,position:C,variant:M}),E=function(e){var t=e.classes,n=e.disablePointerEvents,i=e.hiddenLabel,o=e.position,s=e.size,r=e.variant,a={root:["root",n&&"disablePointerEvents",o&&"position".concat((0,l.Z)(o)),r,i&&"hiddenLabel",s&&"size".concat((0,l.Z)(s))]};return(0,c.Z)(a,m,t)}(I);return(0,j.jsx)(u.Z.Provider,{value:null,children:(0,j.jsx)(Z,(0,s.Z)({as:v,ownerState:I,className:(0,a.Z)(E.root,x),ref:t},N,{children:"string"!==typeof i||A?(0,j.jsxs)(r.Fragment,{children:["start"===C?f||(f=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))},61120:function(e,t,n){function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}n.d(t,{Z:function(){return i}})},60136:function(e,t,n){n.d(t,{Z:function(){return o}});var i=n(89611);function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,i.Z)(e,t)}},82963:function(e,t,n){n.d(t,{Z:function(){return s}});var i=n(71002),o=n(97326);function s(e,t){if(t&&("object"===(0,i.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,o.Z)(e)}}}]);
-//# sourceMappingURL=1199.84ef2065.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1199.84ef2065.chunk.js.map b/portal-ui/build/static/js/1199.84ef2065.chunk.js.map
deleted file mode 100644
index 856c3e9b7..000000000
--- a/portal-ui/build/static/js/1199.84ef2065.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1199.84ef2065.chunk.js","mappings":"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","sources":["screens/Console/Account/AddServiceAccountHelpBox.tsx","screens/Console/Account/AddServiceAccountScreen.tsx","screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n HelpIconFilled,\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountIcon,\n} from \"../../../icons\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n \n {description}\n
\n \n );\n};\nconst AddServiceAccountHelpBox = () => {\n return (\n \n \n \n Learn more about Service Accounts
\n \n \n \n }\n description={`Create Service Accounts`}\n />\n \n Service Accounts inherit the policies explicitly attached to the\n parent user, and the policies attached to each group in which the\n parent user has membership.\n \n \n \n }\n description={`Assign Custom Credentials`}\n />\n \n Randomized access credentials are recommended, and provided by\n default. You may use your own custom Access Key and Secret Key by\n replacing the default values. After creation of any Service Account,\n you will be given the opportunity to view and download the account\n credentials.\n \n \n Service Accounts support programmatic access by applications. You\n cannot use a Service Account to log into the MinIO Console.\n \n \n \n }\n description={`Assign Access Policies`}\n />\n \n You can specify an optional JSON-formatted IAM policy to further\n restrict Service Account access to a subset of the actions and\n resources explicitly allowed for the parent user. Additional access\n beyond that of the parent user cannot be implemented through these\n policies.\n \n \n You cannot modify the optional Service Account IAM policy after\n saving.\n \n \n \n \n \n );\n};\n\nexport default AddServiceAccountHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Button } from \"@mui/material\";\nimport {\n IAMPoliciesIcon,\n PasswordKeyIcon,\n ServiceAccountCredentialsIcon,\n} from \"../../../icons\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport history from \"../../../../src/history\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport AddServiceAccountHelpBox from \"./AddServiceAccountHelpBox\";\nimport BackLink from \"../../../common/BackLink\";\nimport { NewServiceAccount } from \"../Common/CredentialsPrompt/types\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport { ErrorResponseHandler } from \"../../../../src/common/types\";\nimport api from \"../../../../src/common/api\";\nimport CredentialsPrompt from \"../Common/CredentialsPrompt/CredentialsPrompt\";\n\nimport SectionTitle from \"../Common/SectionTitle\";\nimport { getRandomString } from \"../../../screens/Console/Tenants/utils\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\nimport { useDispatch } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\n\ninterface IAddServiceAccountProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst AddServiceAccount = ({ classes }: IAddServiceAccountProps) => {\n const dispatch = useDispatch();\n const [addSending, setAddSending] = useState(false);\n const [accessKey, setAccessKey] = useState(getRandomString(16));\n const [secretKey, setSecretKey] = useState(getRandomString(32));\n const [isRestrictedByPolicy, setIsRestrictedByPolicy] =\n useState(false);\n const [newServiceAccount, setNewServiceAccount] =\n useState(null);\n const [showPassword, setShowPassword] = useState(false);\n const [policyJSON, setPolicyJSON] = useState(\"\");\n\n useEffect(() => {\n if (addSending) {\n api\n .invoke(\"POST\", `/api/v1/service-account-credentials`, {\n policy: policyJSON,\n accessKey: accessKey,\n secretKey: secretKey,\n })\n .then((res) => {\n setAddSending(false);\n setNewServiceAccount({\n accessKey: res.accessKey || \"\",\n secretKey: res.secretKey || \"\",\n url: res.url || \"\",\n });\n })\n\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n }, [addSending, setAddSending, dispatch, policyJSON, accessKey, secretKey]);\n\n useEffect(() => {\n if (isRestrictedByPolicy) {\n api.invoke(\"GET\", `/api/v1/user/policy`).then((res: string) => {\n setPolicyJSON(JSON.stringify(JSON.parse(res), null, 4));\n });\n }\n }, [isRestrictedByPolicy]);\n\n const addServiceAccount = (e: React.FormEvent) => {\n e.preventDefault();\n setAddSending(true);\n };\n\n const resetForm = () => {\n setPolicyJSON(\"\");\n setNewServiceAccount(null);\n setAccessKey(\"\");\n setSecretKey(\"\");\n setShowPassword(false);\n };\n\n const closeCredentialsModal = () => {\n setNewServiceAccount(null);\n history.push(`${IAM_PAGES.ACCOUNT}`);\n };\n\n return (\n \n {newServiceAccount !== null && (\n {\n closeCredentialsModal();\n }}\n entity=\"Service Account\"\n />\n )}\n \n }\n />\n \n \n \n }>\n Create Service Account\n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(AddServiceAccount);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n \n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n \n
New {entity} Created
\n
\n }\n titleIcon={ }\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n \n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n >\n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n >\n )}\n \n \n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n >\n )}\n {idp ? (\n \n Please Login via the configured external identity provider.\n
\n ) : (\n \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n >\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n \n {titleIcon} {title}\n
\n \n \n \n \n
\n \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return {children} ;\n};\n\nexport default withStyles(styles)(PanelTitle);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","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.vars || 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;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["FeatureItem","icon","description","Box","sx","display","marginRight","height","width","marginBottom","style","fontSize","fontStyle","color","flex","border","borderRadius","flexFlow","padding","marginTop","xs","fontWeight","alignItems","paddingBottom","paddingTop","withStyles","theme","createStyles","bottomContainer","flexGrow","margin","justifyContent","formFieldStyles","modalStyleUtils","classes","dispatch","useDispatch","useState","addSending","setAddSending","getRandomString","accessKey","setAccessKey","secretKey","setSecretKey","isRestrictedByPolicy","setIsRestrictedByPolicy","newServiceAccount","setNewServiceAccount","showPassword","setShowPassword","policyJSON","setPolicyJSON","useEffect","api","policy","then","res","url","catch","err","setErrorSnackMessage","JSON","stringify","parse","Fragment","CredentialsPrompt","open","closeModal","history","IAM_PAGES","entity","Grid","item","PageHeader","label","BackLink","to","PageLayout","gap","gridTemplateColumns","md","SectionTitle","noValidate","autoComplete","onSubmit","e","preventDefault","addServiceAccount","container","spacing","className","stackedInputs","InputBoxWrapper","value","id","name","placeholder","onChange","target","type","overlayIcon","VisibilityOff","RemoveRedEye","overlayAction","FormSwitchWrapper","checked","event","tooltip","codeMirrorContainer","PanelTitle","formScrollable","CodeMirrorWrapper","onBeforeChange","editor","data","editorHeight","modalButtonBar","Button","variant","onClick","inputWithCopy","background","inputLabel","fieldBasic","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","body","appendChild","click","removeChild","warningBlock","credentialTitle","buttonContainer","textAlign","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Array","isArray","map","credentialsPair","index","undefined","WarnIcon","RBIconButton","consoleExtras","itemMap","path","length","allCredentials","mode","tooltipContainer","placement","overflow","language","evn","backgroundColor","fontFamily","borderTop","paddingRight","marginLeft","deleteDialogStyles","content","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","props","styles","ownerState","capitalize","disablePointerEvents","_extends","whiteSpace","vars","palette","action","active","inputAdornmentClasses","pointerEvents","React","inProps","ref","useThemeProps","component","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","slots","composeClasses","useUtilityClasses","_jsx","FormControlContext","as","clsx","_jsxs","Typography","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1268.444486ab.chunk.js b/portal-ui/build/static/js/1268.444486ab.chunk.js
deleted file mode 100644
index 6870af3ff..000000000
--- a/portal-ui/build/static/js/1268.444486ab.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1268],{92217:function(e,n,t){var o=t(1413),i=t(72791),r=t(61889),a=t(30829),c=t(20068),s=t(64554),l=t(11135),u=t(25787),d=t(84570),f=t(23814),p=t(51047),m=t(40603),x=t(78029),h=t.n(x),Z=t(85457),y=t(80184);n.Z=(0,u.Z)((function(e){return(0,l.Z)((0,o.Z)({},f.YI))}))((function(e){var n=e.value,t=e.label,o=void 0===t?"":t,l=e.tooltip,u=void 0===l?"":l,f=e.mode,x=void 0===f?"json":f,j=e.classes,b=e.onBeforeChange,v=(e.readOnly,e.editorHeight),g=void 0===v?"250px":v;return(0,y.jsxs)(i.Fragment,{children:[(0,y.jsx)(r.ZP,{item:!0,xs:12,children:(0,y.jsxs)(a.Z,{className:j.inputLabel,children:[(0,y.jsx)("span",{children:o}),""!==u&&(0,y.jsx)("div",{className:j.tooltipContainer,children:(0,y.jsx)(c.Z,{title:u,placement:"top-start",children:(0,y.jsx)("div",{className:j.tooltip,children:(0,y.jsx)(d.Z,{})})})})]})}),(0,y.jsx)(r.ZP,{item:!0,xs:12,style:{maxHeight:g,overflow:"auto"},children:(0,y.jsx)(Z.Z,{value:n,language:x,onChange:function(e){b(null,null,e.target.value)},padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,y.jsx)(r.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,y.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,y.jsx)(h(),{text:n,children:(0,y.jsx)(m.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,y.jsx)(p.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},82859:function(e,n,t){t.r(n);var o=t(29439),i=t(1413),r=t(72791),a=t(60364),c=t(61889),s=t(40986),l=t(36151),u=t(11135),d=t(25787),f=t(81207),p=t(23814),m=t(92217),x=t(87995),h=t(82295),Z=t(50896),y=t(80184);n.default=(0,d.Z)((function(e){return(0,u.Z)((0,i.Z)((0,i.Z)({errorState:{color:"#b53b4b",fontSize:14,fontWeight:"bold"},codeMirrorContainer:{marginBottom:20,paddingLeft:15,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},p.ID),p.YI))}))((function(e){var n=e.classes,t=e.history,i=(0,a.I0)(),u=(0,a.v9)((function(e){return e.tenants.currentTenant})),d=(0,a.v9)((function(e){return e.tenants.currentNamespace})),p=(0,r.useState)(!1),j=(0,o.Z)(p,2),b=j[0],v=j[1],g=(0,r.useState)(!1),C=(0,o.Z)(g,2),S=C[0],P=C[1],k=(0,r.useState)(""),w=(0,o.Z)(k,2),O=w[0],T=w[1],I=(0,r.useState)(""),M=(0,o.Z)(I,2),_=M[0],E=M[1];(0,r.useEffect)((function(){f.Z.invoke("GET","/api/v1/namespaces/".concat(d,"/tenants/").concat(u,"/yaml")).then((function(e){P(!1),T(e.yaml)})).catch((function(e){P(!1),i((0,x.zb)(e))}))}),[u,d,i]),(0,r.useEffect)((function(){}),[]);var F=""!==O.trim();return(0,y.jsxs)(r.Fragment,{children:[b||S&&(0,y.jsx)(c.ZP,{item:!0,xs:12,children:(0,y.jsx)(s.Z,{})}),""!==_&&(0,y.jsx)("div",{className:n.errorState,children:_}),!S&&(0,y.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),b||(v(!0),E(""),f.Z.invoke("PUT","/api/v1/namespaces/".concat(d,"/tenants/").concat(u,"/yaml"),{yaml:O}).then((function(e){v(!1),i((0,h.v)()),E(""),t.push("/namespaces/".concat(d,"/tenants/").concat(u,"/summary"))})).catch((function(e){v(!1),E(e.errorMessage)})))},children:(0,y.jsxs)(c.ZP,{container:!0,children:[(0,y.jsx)(c.ZP,{item:!0,xs:12,children:(0,y.jsx)(Z.Z,{children:"Tenant Specification"})}),(0,y.jsx)(c.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,y.jsx)(m.Z,{value:O,mode:"yaml",onBeforeChange:function(e,n,t){T(t)},editorHeight:"550px"})}),(0,y.jsxs)(c.ZP,{item:!0,xs:12,style:{textAlign:"right",paddingTop:16},children:[(0,y.jsx)(l.Z,{type:"button",variant:"outlined",color:"primary",disabled:b,onClick:function(){t.push("/namespaces/".concat(d,"/tenants/").concat(u,"/summary"))},children:"Cancel"}),(0,y.jsx)(l.Z,{type:"submit",variant:"contained",color:"primary",disabled:b||!F,style:{marginLeft:8},children:"Save"})]})]})})]})}))},61120:function(e,n,t){function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}t.d(n,{Z:function(){return o}})},60136:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(89611);function i(e,n){if("function"!==typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&(0,o.Z)(e,n)}},82963:function(e,n,t){t.d(n,{Z:function(){return r}});var o=t(71002),i=t(97326);function r(e,n){if(n&&("object"===(0,o.Z)(n)||"function"===typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}}}]);
-//# sourceMappingURL=1268.444486ab.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1268.444486ab.chunk.js.map b/portal-ui/build/static/js/1268.444486ab.chunk.js.map
deleted file mode 100644
index c67b24879..000000000
--- a/portal-ui/build/static/js/1268.444486ab.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1268.444486ab.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Tenants/TenantDetails/TenantYAML.tsx","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } 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 {\n fieldBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { AppState } from \"../../../../store\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorState: {\n color: \"#b53b4b\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n paddingLeft: 15,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface ITenantYAML {\n yaml: string;\n}\n\ninterface ITenantYAMLProps {\n classes: any;\n history: any;\n}\n\nconst TenantYAML = ({ classes, history }: ITenantYAMLProps) => {\n const dispatch = useDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.currentTenant);\n const namespace = useSelector(\n (state: AppState) => state.tenants.currentNamespace\n );\n\n const [addLoading, setAddLoading] = useState(false);\n const [loading, setLoading] = useState(false);\n const [tenantYaml, setTenantYaml] = useState(\"\");\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const updateTenant = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n setErrorMessage(\"\");\n api\n .invoke(\"PUT\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`, {\n yaml: tenantYaml,\n })\n .then((res) => {\n setAddLoading(false);\n dispatch(getTenantAsync());\n setErrorMessage(\"\");\n history.push(`/namespaces/${namespace}/tenants/${tenant}/summary`);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorMessage(err.errorMessage);\n });\n };\n\n useEffect(() => {\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`)\n .then((res: ITenantYAML) => {\n setLoading(false);\n setTenantYaml(res.yaml);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [tenant, namespace, dispatch]);\n\n useEffect(() => {}, []);\n\n const validSave = tenantYaml.trim() !== \"\";\n\n return (\n \n {addLoading ||\n (loading && (\n \n \n \n ))}\n {errorMessage !== \"\" && (\n {errorMessage}
\n )}\n\n {!loading && (\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(TenantYAML);\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","errorState","fontWeight","codeMirrorContainer","marginBottom","paddingLeft","modalStyleUtils","history","dispatch","useDispatch","tenant","useSelector","state","tenants","currentTenant","namespace","currentNamespace","useState","addLoading","setAddLoading","loading","setLoading","tenantYaml","setTenantYaml","errorMessage","setErrorMessage","useEffect","api","then","res","yaml","catch","err","setModalErrorSnackMessage","validSave","trim","Fragment","noValidate","autoComplete","onSubmit","e","preventDefault","getTenantAsync","push","container","border","editor","data","textAlign","paddingTop","type","disabled","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1268.d8119a92.chunk.js b/portal-ui/build/static/js/1268.d8119a92.chunk.js
new file mode 100644
index 000000000..2309560e3
--- /dev/null
+++ b/portal-ui/build/static/js/1268.d8119a92.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1268],{92217:function(e,n,t){var o=t(1413),i=t(72791),r=t(61889),a=t(30829),c=t(20068),s=t(64554),l=t(11135),u=t(25787),d=t(84570),f=t(23814),p=t(3923),m=t(40603),x=t(78029),h=t.n(x),Z=t(85457),j=t(80184);n.Z=(0,u.Z)((function(e){return(0,l.Z)((0,o.Z)({},f.YI))}))((function(e){var n=e.value,t=e.label,o=void 0===t?"":t,l=e.tooltip,u=void 0===l?"":l,f=e.mode,x=void 0===f?"json":f,y=e.classes,b=e.onBeforeChange,v=(e.readOnly,e.editorHeight),g=void 0===v?"250px":v;return(0,j.jsxs)(i.Fragment,{children:[(0,j.jsx)(r.ZP,{item:!0,xs:12,children:(0,j.jsxs)(a.Z,{className:y.inputLabel,children:[(0,j.jsx)("span",{children:o}),""!==u&&(0,j.jsx)("div",{className:y.tooltipContainer,children:(0,j.jsx)(c.Z,{title:u,placement:"top-start",children:(0,j.jsx)("div",{className:y.tooltip,children:(0,j.jsx)(d.Z,{})})})})]})}),(0,j.jsx)(r.ZP,{item:!0,xs:12,style:{maxHeight:g,overflow:"auto"},children:(0,j.jsx)(Z.Z,{value:n,language:x,onChange:function(e){b(null,null,e.target.value)},padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,j.jsx)(r.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,j.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,j.jsx)(h(),{text:n,children:(0,j.jsx)(m.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,j.jsx)(p.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},82859:function(e,n,t){t.r(n);var o=t(29439),i=t(1413),r=t(72791),a=t(60364),c=t(16871),s=t(61889),l=t(40986),u=t(36151),d=t(11135),f=t(25787),p=t(81207),m=t(23814),x=t(92217),h=t(87995),Z=t(81551),j=t(82295),y=t(50896),b=t(80184);n.default=(0,f.Z)((function(e){return(0,d.Z)((0,i.Z)((0,i.Z)({errorState:{color:"#b53b4b",fontSize:14,fontWeight:"bold"},codeMirrorContainer:{marginBottom:20,paddingLeft:15,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},m.ID),m.YI))}))((function(e){var n=e.classes,t=(0,Z.TL)(),i=(0,c.s0)(),d=(0,a.v9)((function(e){return e.tenants.currentTenant})),f=(0,a.v9)((function(e){return e.tenants.currentNamespace})),m=(0,r.useState)(!1),v=(0,o.Z)(m,2),g=v[0],C=v[1],S=(0,r.useState)(!1),P=(0,o.Z)(S,2),k=P[0],w=P[1],T=(0,r.useState)(""),O=(0,o.Z)(T,2),L=O[0],M=O[1],_=(0,r.useState)(""),E=(0,o.Z)(_,2),F=E[0],I=E[1];(0,r.useEffect)((function(){p.Z.invoke("GET","/api/v1/namespaces/".concat(f,"/tenants/").concat(d,"/yaml")).then((function(e){w(!1),M(e.yaml)})).catch((function(e){w(!1),t((0,h.zb)(e))}))}),[d,f,t]),(0,r.useEffect)((function(){}),[]);var N=""!==L.trim();return(0,b.jsxs)(r.Fragment,{children:[g||k&&(0,b.jsx)(s.ZP,{item:!0,xs:12,children:(0,b.jsx)(l.Z,{})}),""!==F&&(0,b.jsx)("div",{className:n.errorState,children:F}),!k&&(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),g||(C(!0),I(""),p.Z.invoke("PUT","/api/v1/namespaces/".concat(f,"/tenants/").concat(d,"/yaml"),{yaml:L}).then((function(e){C(!1),t((0,j.v)()),I(""),i("/namespaces/".concat(f,"/tenants/").concat(d,"/summary"))})).catch((function(e){C(!1),I(e.errorMessage)})))},children:(0,b.jsxs)(s.ZP,{container:!0,children:[(0,b.jsx)(s.ZP,{item:!0,xs:12,children:(0,b.jsx)(y.Z,{children:"Tenant Specification"})}),(0,b.jsx)(s.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,b.jsx)(x.Z,{value:L,mode:"yaml",onBeforeChange:function(e,n,t){M(t)},editorHeight:"550px"})}),(0,b.jsxs)(s.ZP,{item:!0,xs:12,style:{textAlign:"right",paddingTop:16},children:[(0,b.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",disabled:g,onClick:function(){i("/namespaces/".concat(f,"/tenants/").concat(d,"/summary"))},children:"Cancel"}),(0,b.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:g||!N,style:{marginLeft:8},children:"Save"})]})]})})]})}))},61120:function(e,n,t){function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}t.d(n,{Z:function(){return o}})},60136:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(89611);function i(e,n){if("function"!==typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&(0,o.Z)(e,n)}},82963:function(e,n,t){t.d(n,{Z:function(){return r}});var o=t(71002),i=t(97326);function r(e,n){if(n&&("object"===(0,o.Z)(n)||"function"===typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}}}]);
+//# sourceMappingURL=1268.d8119a92.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1268.d8119a92.chunk.js.map b/portal-ui/build/static/js/1268.d8119a92.chunk.js.map
new file mode 100644
index 000000000..5f72c24cf
--- /dev/null
+++ b/portal-ui/build/static/js/1268.d8119a92.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1268.d8119a92.chunk.js","mappings":"6RAkIA,KAAeA,EAAAA,EAAAA,IAzFA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACRC,EAAAA,OAuFP,EApF0B,SAAC,GASN,IARnBC,EAQkB,EARlBA,MAQkB,IAPlBC,MAAAA,OAOkB,MAPV,GAOU,MANlBC,QAAAA,OAMkB,MANR,GAMQ,MALlBC,KAAAA,OAKkB,MALX,OAKW,EAJlBC,EAIkB,EAJlBA,QACAC,EAGkB,EAHlBA,eAGkB,KAFlBC,SAEkB,EADlBC,cAAAA,OACkB,MADH,QACG,EAClB,OACE,UAAC,WAAD,YACE,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAf,UACE,UAAC,IAAD,CAAYC,UAAWN,EAAQO,WAA/B,WACE,0BAAOV,IACM,KAAZC,IACC,gBAAKQ,UAAWN,EAAQQ,iBAAxB,UACE,SAAC,IAAD,CAASC,MAAOX,EAASY,UAAU,YAAnC,UACE,gBAAKJ,UAAWN,EAAQF,QAAxB,UACE,SAAC,IAAD,gBAQZ,SAAC,KAAD,CAAMM,MAAI,EAACC,GAAI,GAAIM,MAAO,CAAEC,UAAWT,EAAcU,SAAU,QAA/D,UACE,SAAC,IAAD,CACEjB,MAAOA,EACPkB,SAAUf,EACVgB,SAAU,SAACC,GACTf,EAAe,KAAM,KAAMe,EAAIC,OAAOrB,QAExCsB,QAAS,GACTP,MAAO,CACLQ,SAAU,GACVC,gBAAiB,UACjBC,WACE,qFAIR,SAAC,KAAD,CACEjB,MAAI,EACJC,GAAI,GACJiB,GAAI,CACFC,UAAW,oBACXC,WAAY,WALhB,UAQE,SAAC,IAAD,CACEF,GAAI,CACFG,QAAS,OACTC,WAAY,SACZR,QAAS,MACTS,aAAc,MACdC,eAAgB,WAChB,WAAY,CACVC,OAAQ,OACRC,MAAO,OACPZ,QAAS,MACT,aAAc,CACZa,WAAY,OAZpB,UAiBE,SAAC,IAAD,CAAiBC,KAAMpC,EAAvB,UACE,SAAC,IAAD,CACEE,QAAS,oBACTmC,QAAS,aACTD,KAAM,GACNE,MAAM,SAAC,MAAD,IACNC,MAAO,UACPC,QAAS,0B,sOC+DvB,WAAe5C,EAAAA,EAAAA,IApJA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACX2C,WAAY,CACVF,MAAO,UACPhB,SAAU,GACVmB,WAAY,QAEdC,oBAAqB,CACnBC,aAAc,GACdC,YAAa,GACb,UAAW,CACTD,aAAc,SAEhB,gBAAiB,CACff,QAAS,UAGViB,EAAAA,IACA/C,EAAAA,OAkIP,EAvHmB,SAAC,GAAmC,IAAjCK,EAAgC,EAAhCA,QACd2C,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MAEXC,GAASC,EAAAA,EAAAA,KAAY,SAACC,GAAD,OAAqBA,EAAMC,QAAQC,iBACxDC,GAAYJ,EAAAA,EAAAA,KAChB,SAACC,GAAD,OAAqBA,EAAMC,QAAQG,oBAGrC,GAAoCC,EAAAA,EAAAA,WAAkB,GAAtD,eAAOC,EAAP,KAAmBC,EAAnB,KACA,GAA8BF,EAAAA,EAAAA,WAAkB,GAAhD,eAAOG,EAAP,KAAgBC,EAAhB,KACA,GAAoCJ,EAAAA,EAAAA,UAAiB,IAArD,eAAOK,EAAP,KAAmBC,EAAnB,KACA,GAAwCN,EAAAA,EAAAA,UAAiB,IAAzD,eAAOO,EAAP,KAAqBC,EAArB,MAyBAC,EAAAA,EAAAA,YAAU,WACRC,EAAAA,EAAAA,OACU,MADV,6BACuCZ,EADvC,oBAC4DL,EAD5D,UAEGkB,MAAK,SAACC,GACLR,GAAW,GACXE,EAAcM,EAAIC,SAEnBC,OAAM,SAACC,GACNX,GAAW,GACXf,GAAS2B,EAAAA,EAAAA,IAA0BD,SAEtC,CAACtB,EAAQK,EAAWT,KAEvBoB,EAAAA,EAAAA,YAAU,cAAU,IAEpB,IAAMQ,EAAkC,KAAtBZ,EAAWa,OAE7B,OACE,UAAC,EAAAC,SAAD,WACGlB,GACEE,IACC,SAAC,KAAD,CAAMrD,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,MAGY,KAAjBwD,IACC,gBAAKvD,UAAWN,EAAQqC,WAAxB,SAAqCwB,KAGrCJ,IACA,iBACEiB,YAAU,EACVC,aAAa,MACbC,SAAU,SAACC,GACIA,EAxDfC,iBACFvB,IAGJC,GAAc,GACdM,EAAgB,IAChBE,EAAAA,EAAAA,OACU,MADV,6BACuCZ,EADvC,oBAC4DL,EAD5D,SAC2E,CACvEoB,KAAMR,IAEPM,MAAK,SAACC,GACLV,GAAc,GACdb,GAASoC,EAAAA,EAAAA,MACTjB,EAAgB,IAChBjB,EAAS,eAAD,OAAgBO,EAAhB,oBAAqCL,EAArC,gBAETqB,OAAM,SAACC,GACNb,GAAc,GACdM,EAAgBO,EAAIR,mBAkCpB,UAOE,UAAC,KAAD,CAAMmB,WAAS,EAAf,WACE,SAAC,KAAD,CAAM5E,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,sCAEF,SAAC,KAAD,CAAMD,MAAI,EAACC,GAAI,GAAIM,MAAO,CAAEsE,OAAQ,qBAApC,UACE,SAAC,IAAD,CACErF,MAAO+D,EACP5D,KAAM,OACNE,eAAgB,SAACiF,EAAQC,EAAMvF,GAC7BgE,EAAchE,IAEhBO,aAAc,aAGlB,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIM,MAAO,CAAEyE,UAAW,QAASC,WAAY,IAA5D,WACE,SAAC,IAAD,CACEC,KAAK,SACLlD,QAAQ,WACRD,MAAM,UACNoD,SAAUhC,EACVtB,QAAS,WACPY,EAAS,eAAD,OACSO,EADT,oBAC8BL,EAD9B,cANZ,qBAaA,SAAC,IAAD,CACEuC,KAAK,SACLlD,QAAQ,YACRD,MAAM,UACNoD,SAAUhC,IAAegB,EACzB5D,MAAO,CAAEoB,WAAY,GALvB,iC,sBCvKC,SAASyD,EAAgBC,GAItC,OAHAD,EAAkBE,OAAOC,eAAiBD,OAAOE,eAAeC,OAAS,SAAyBJ,GAChG,OAAOA,EAAEK,WAAaJ,OAAOE,eAAeH,IAEvCD,EAAgBC,G,sGCHV,SAASM,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIC,UAAU,sDAGtBF,EAASG,UAAYT,OAAOU,OAAOH,GAAcA,EAAWE,UAAW,CACrEE,YAAa,CACXzG,MAAOoG,EACPM,UAAU,EACVC,cAAc,KAGlBb,OAAOc,eAAeR,EAAU,YAAa,CAC3CM,UAAU,IAERL,IAAY,OAAeD,EAAUC,K,gFCd5B,SAASQ,EAA2BC,EAAMC,GACvD,GAAIA,IAA2B,YAAlB,OAAQA,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIT,UAAU,4DAGtB,OAAO,OAAsBQ","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Tenants/TenantDetails/TenantYAML.tsx","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../common/api\";\nimport {\n fieldBasic,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorState: {\n color: \"#b53b4b\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n codeMirrorContainer: {\n marginBottom: 20,\n paddingLeft: 15,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...modalStyleUtils,\n ...fieldBasic,\n });\n\ninterface ITenantYAML {\n yaml: string;\n}\n\ninterface ITenantYAMLProps {\n classes: any;\n}\n\nconst TenantYAML = ({ classes }: ITenantYAMLProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const tenant = useSelector((state: AppState) => state.tenants.currentTenant);\n const namespace = useSelector(\n (state: AppState) => state.tenants.currentNamespace\n );\n\n const [addLoading, setAddLoading] = useState(false);\n const [loading, setLoading] = useState(false);\n const [tenantYaml, setTenantYaml] = useState(\"\");\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const updateTenant = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n setErrorMessage(\"\");\n api\n .invoke(\"PUT\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`, {\n yaml: tenantYaml,\n })\n .then((res) => {\n setAddLoading(false);\n dispatch(getTenantAsync());\n setErrorMessage(\"\");\n navigate(`/namespaces/${namespace}/tenants/${tenant}/summary`);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorMessage(err.errorMessage);\n });\n };\n\n useEffect(() => {\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants/${tenant}/yaml`)\n .then((res: ITenantYAML) => {\n setLoading(false);\n setTenantYaml(res.yaml);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [tenant, namespace, dispatch]);\n\n useEffect(() => {}, []);\n\n const validSave = tenantYaml.trim() !== \"\";\n\n return (\n \n {addLoading ||\n (loading && (\n \n \n \n ))}\n {errorMessage !== \"\" && (\n {errorMessage}
\n )}\n\n {!loading && (\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(TenantYAML);\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["withStyles","theme","createStyles","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","errorState","fontWeight","codeMirrorContainer","marginBottom","paddingLeft","modalStyleUtils","dispatch","useAppDispatch","navigate","useNavigate","tenant","useSelector","state","tenants","currentTenant","namespace","currentNamespace","useState","addLoading","setAddLoading","loading","setLoading","tenantYaml","setTenantYaml","errorMessage","setErrorMessage","useEffect","api","then","res","yaml","catch","err","setModalErrorSnackMessage","validSave","trim","Fragment","noValidate","autoComplete","onSubmit","e","preventDefault","getTenantAsync","container","border","editor","data","textAlign","paddingTop","type","disabled","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1367.570f471e.chunk.js b/portal-ui/build/static/js/1367.570f471e.chunk.js
deleted file mode 100644
index 921e0b6fe..000000000
--- a/portal-ui/build/static/js/1367.570f471e.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1367,7923],{92217:function(e,n,t){"use strict";var i=t(1413),r=t(72791),o=t(61889),a=t(30829),s=t(20068),c=t(64554),l=t(11135),d=t(25787),u=t(84570),p=t(23814),h=t(51047),x=t(40603),f=t(78029),m=t.n(f),v=t(85457),Z=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var n=e.value,t=e.label,i=void 0===t?"":t,l=e.tooltip,d=void 0===l?"":l,p=e.mode,f=void 0===p?"json":p,b=e.classes,j=e.onBeforeChange,g=(e.readOnly,e.editorHeight),C=void 0===g?"250px":g;return(0,Z.jsxs)(r.Fragment,{children:[(0,Z.jsx)(o.ZP,{item:!0,xs:12,children:(0,Z.jsxs)(a.Z,{className:b.inputLabel,children:[(0,Z.jsx)("span",{children:i}),""!==d&&(0,Z.jsx)("div",{className:b.tooltipContainer,children:(0,Z.jsx)(s.Z,{title:d,placement:"top-start",children:(0,Z.jsx)("div",{className:b.tooltip,children:(0,Z.jsx)(u.Z,{})})})})]})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:C,overflow:"auto"},children:(0,Z.jsx)(v.Z,{value:n,language:f,onChange:function(e){j(null,null,e.target.value)},padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,Z.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,Z.jsx)(m(),{text:n,children:(0,Z.jsx)(x.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,Z.jsx)(h.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},59114:function(e,n,t){"use strict";var i=t(4942),r=t(1413),o=(t(72791),t(63466)),a=t(74900),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,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,r=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,p=e.overrideClass,h=e.value,x=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:r.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:p||r.searchField,id:"search-resource",label:"",InputProps:x,onChange:function(e){c(e.target.value)},variant:"standard",value:h})}))},50276:function(e,n,t){"use strict";var i=t(1413),r=t(29439),o=t(72791),a=t(64554),s=t(43896),c=t(83449),l=t(47283),d=t(82851),u=t(25787),p=t(13967),h=t(11135),x=t(95193),f=t(80184),m={minHeight:60};n.Z=(0,u.Z)((function(e){return(0,h.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,u=e.selectedTab,h=void 0===u?"0":u,v=e.routes,Z=e.isRouteTabs,b=o.useState(h),j=(0,r.Z)(b,2),g=j[0],C=j[1],y=(0,p.Z)(),E=(0,x.Z)(y.breakpoints.down("md")),P=[],S=[];return n?(n.forEach((function(e){P.push(e.tabConfig),S.push(e.content)})),(0,f.jsx)(c.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:E?"horizontal":"vertical",variant:E?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:P.map((function(e,n){return e?(0,f.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:m},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,f.jsxs)(a.Z,{className:t.tabContentContainer,children:[Z?null:S.map((function(e,n){return(0,f.jsx)(d.Z,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),Z?(0,f.jsx)("div",{className:t.tabPanel,children:v}):null]})]})})):null}))},879:function(e,n,t){"use strict";t.d(n,{D_:function(){return a},Et:function(){return r},GJ:function(){return o},yh:function(){return i}});var i={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},r=function(e,n){return e<=n/2?i.RED:2!==n&&e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0},o=function(e){switch(e){case"offline":return i.RED;case"online":return i.GREEN;default:return i.YELLOW}},a=function(e,n){return e<=n/2?i.RED:e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0}},1191:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return V}});var i=t(29439),r=t(1413),o=t(72791),a=t(60364),s=t(11135),c=t(25787),l=t(23814),d=t(10703),u=t(61889),p=t(36151),h=t(40986),x=t(92983),f=t(81207),m=t(32291),v=t(92217),Z=t(62666),b=t(63466),j=t(27391),g=t(14917),C=t(64244),y=t(28789),E=t(74900),P=t(54599),S=t(74794),N=t(50276),R=t(84669),T=t(56087),w=t(38442),A=t(75578),F=t(40603),I=t(64554),M=t(59114),L=t(51047),k=t(879),O=t(80184),z={display:"grid",gridTemplateColumns:"60px 1fr",gap:"15px"},D=function(e){var n=e.search,t=void 0===n?"":n,i=e.children,r=void 0===i?"":i,o=new RegExp("(".concat(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}(t),")"),"i"),a=String(r).split(o);return t?a.map((function(e,n){return o.test(e)?(0,O.jsx)("mark",{children:e},n):e})):r},_=(0,c.Z)((function(e){return(0,s.Z)({searchField:(0,r.Z)((0,r.Z)({},l.qg.searchField),{},{maxWidth:380})})}))((function(e){var n=e.policyStatements,t=e.classes,r=void 0===t?{}:t,a=(0,o.useState)(""),s=(0,i.Z)(a,2),c=s[0],l=s[1];return(0,O.jsxs)(u.ZP,{container:!0,children:[(0,O.jsx)(u.ZP,{item:!0,xs:12,children:(0,O.jsxs)(I.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},alignItems:"center",justifyContent:"space-between",gap:"15px"},children:[(0,O.jsx)(I.Z,{children:"Statements"}),(0,O.jsx)(M.Z,{placeholder:"Search",onChange:l,overrideClass:r.searchField,value:c})]})}),(0,O.jsx)(u.ZP,{item:!0,xs:12,sx:{"& .policy-row":{borderBottom:"1px solid #eaeaea"},"& .policy-row:first-child":{borderTop:"1px solid #eaeaea"},"& .policy-row:last-child":{borderBottom:"0px"},paddingTop:"15px","& mark":{color:"#000000",fontWeight:500}},children:n.map((function(e,n){var t=e.Effect,i="Allow"===t;return(0,O.jsxs)(I.Z,{className:"policy-row",sx:{display:"grid",gridTemplateColumns:"1fr",gap:"15px",fontSize:"14px",padding:"10px 0 10px 0","& .label":{fontWeight:600}},children:[(0,O.jsxs)(I.Z,{sx:z,children:[(0,O.jsx)(I.Z,{className:"label",children:"Effect:"}),(0,O.jsxs)(I.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{marginRight:"5px",fill:i?k.yh.GREEN:k.yh.RED,height:"14px",width:"14px"}},children:[i?(0,O.jsx)(L.E31,{}):(0,O.jsx)(L.dRf,{}),t]})]}),(0,O.jsxs)(I.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"15px"},children:[(0,O.jsxs)(I.Z,{sx:z,children:[(0,O.jsx)(I.Z,{className:"label",children:"Actions:"}),(0,O.jsx)(I.Z,{children:e.Action&&e.Action.map((function(e,t){return(0,O.jsx)("div",{children:(0,O.jsx)(D,{search:c,children:e})},"".concat(n,"-r-").concat(t))}))})]}),(0,O.jsxs)(I.Z,{sx:z,children:[(0,O.jsx)(I.Z,{className:"label",children:"Resources:"}),(0,O.jsx)(I.Z,{children:e.Resource&&e.Resource.map((function(e,t){return(0,O.jsxs)("div",{children:[" ",(0,O.jsx)(D,{search:c,children:e})]},"".concat(n,"-r-").concat(t))}))})]})]})]},"".concat(n))}))})]})})),B=t(45248),G=t(87995),H=t(46078),U=(0,A.Z)(o.lazy((function(){return t.e(312).then(t.bind(t,312))}))),V=(0,c.Z)((function(e){return(0,s.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({buttonContainer:{textAlign:"right",paddingTop:16},pageContainer:{border:"1px solid #EAEAEA",height:"100%"},paperContainer:{padding:"15px 15px 15px 50px",minHeight:"450px"},statement:{border:"1px solid #DADADA",padding:8,marginBottom:8,borderRadius:4},labelCol:{fontWeight:"bold"}},l.OR),l.qg),l.oO),(0,l.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.match,r=(0,a.I0)(),s=(0,a.v9)(H.$4),c=(0,o.useState)(null),l=(0,i.Z)(c,2),A=l[0],I=l[1],M=(0,o.useState)([]),L=(0,i.Z)(M,2),k=L[0],z=L[1],D=(0,o.useState)([]),V=(0,i.Z)(D,2),W=V[0],Y=V[1],q=(0,o.useState)([]),J=(0,i.Z)(q,2),Q=J[0],$=J[1],K=(0,o.useState)(!1),X=(0,i.Z)(K,2),ee=X[0],ne=X[1],te=(0,B.IO)(t.params.policyName),ie=(0,o.useState)(""),re=(0,i.Z)(ie,2),oe=re[0],ae=re[1],se=(0,o.useState)(!0),ce=(0,i.Z)(se,2),le=ce[0],de=ce[1],ue=(0,o.useState)(""),pe=(0,i.Z)(ue,2),he=pe[0],xe=pe[1],fe=(0,o.useState)(!0),me=(0,i.Z)(fe,2),ve=me[0],Ze=me[1],be=(0,o.useState)(""),je=(0,i.Z)(be,2),ge=je[0],Ce=je[1],ye=(0,o.useState)(!0),Ee=(0,i.Z)(ye,2),Pe=Ee[0],Se=Ee[1],Ne=(0,o.useState)(!1),Re=(0,i.Z)(Ne,2),Te=Re[0],we=Re[1],Ae=s&&s.includes("ldap-idp")||!1,Fe=(0,w.F)(T.C3,[T.Ft.ADMIN_LIST_GROUPS,T.Ft.ADMIN_GET_GROUP],!0),Ie=(0,w.F)(T.C3,[T.Ft.ADMIN_GET_GROUP]),Me=(0,w.F)(T.C3,[T.Ft.ADMIN_LIST_GROUPS]),Le=(0,w.F)(T.C3,[T.Ft.ADMIN_GET_USER]),ke=(0,w.F)(T.C3,[T.Ft.ADMIN_GET_POLICY]),Oe=(0,w.F)(T.C3,[T.Ft.ADMIN_CREATE_POLICY]);(0,o.useEffect)((function(){le&&(le&&(ke?f.Z.invoke("GET","/api/v1/policy/".concat((0,B.LL)(te))).then((function(e){if(e){I(e),ae(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);z(n.Statement)}de(!1)})).catch((function(e){r((0,G.Ih)(e)),de(!1)})):de(!1)),ve&&(Me&&!Ae?f.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(te),"/users")).then((function(e){Y(e),Ze(!1)})).catch((function(e){r((0,G.Ih)(e)),Ze(!1)})):Ze(!1)),Pe&&(Fe&&!Ae?f.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(te),"/groups")).then((function(e){$(e),Se(!1)})).catch((function(e){r((0,G.Ih)(e)),Se(!1)})):Se(!1)))}),[te,le,ve,Pe,Y,$,ae,I,Ze,Se,Me,Fe,ke,Ae,r]);var ze=""!==te.trim(),De=[{type:"view",onClick:function(e){Z.Z.push("".concat(T.gA.USERS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Le}}],_e=W.filter((function(e){return e.includes(he)})),Be=[{type:"view",onClick:function(e){Z.Z.push("".concat(T.gA.GROUPS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Ie}}],Ge=Q.filter((function(e){return e.includes(ge)}));return(0,O.jsxs)(o.Fragment,{children:[Te&&(0,O.jsx)(U,{deleteOpen:Te,selectedPolicy:te,closeDeleteModalAndRefresh:function(e){we(!1),Z.Z.push(T.gA.POLICIES)}}),(0,O.jsx)(m.Z,{label:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(R.Z,{to:T.gA.POLICIES,label:"Policy"})})}),(0,O.jsxs)(S.Z,{className:n.pageContainer,children:[(0,O.jsx)(u.ZP,{item:!0,xs:12,children:(0,O.jsx)(g.Z,{icon:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(C.Z,{width:40})}),title:te,subTitle:(0,O.jsx)(o.Fragment,{children:"IAM Policy"}),actions:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)(w.s,{scopes:[T.Ft.ADMIN_DELETE_POLICY],resource:T.C3,errorProps:{disabled:!0},children:(0,O.jsx)(F.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,O.jsx)(P.Z,{}),onClick:function(){we(!0)}})}),(0,O.jsx)(F.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,O.jsx)(y.default,{}),onClick:function(){Ze(!0),Se(!0),de(!0)}})]})})}),(0,O.jsxs)(N.Z,{children:[{tabConfig:{label:"Summary",disabled:!ke},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Policy Summary"}),(0,O.jsx)(d.Z,{className:n.paperContainer,children:(0,O.jsx)(_,{policyStatements:k})})]})},{tabConfig:{label:"Users",disabled:!Me||Ae},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Users"}),(0,O.jsxs)(u.ZP,{container:!0,children:[(0,O.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(j.Z,{placeholder:"Search Users",className:n.searchField,id:"search-resource",label:"",onChange:function(e){xe(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(b.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(x.Z,{itemActions:De,columns:[{label:"Name",elementKey:"name"}],isLoading:ve,records:_e,entityName:"Users",idField:"name"})]})]})},{tabConfig:{label:"Groups",disabled:!Fe||Ae},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Groups"}),(0,O.jsxs)(u.ZP,{container:!0,children:[(0,O.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(j.Z,{placeholder:"Search Groups",className:n.searchField,id:"search-resource",label:"",onChange:function(e){Ce(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(b.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(x.Z,{itemActions:Be,columns:[{label:"Name",elementKey:"name"}],isLoading:Pe,records:Ge,entityName:"Groups",idField:"name"})]})]})},{tabConfig:{label:"Raw Policy",disabled:!ke},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Raw Policy"}),(0,O.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),ee||(ne(!0),Oe?f.Z.invoke("POST","/api/v1/policies",{name:te,policy:oe}).then((function(e){ne(!1),r((0,G.y1)("Policy successfully updated"))})).catch((function(e){ne(!1),r((0,G.Ih)(e))})):ne(!1))},children:(0,O.jsxs)(u.ZP,{container:!0,children:[(0,O.jsx)(u.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,O.jsx)(v.Z,{readOnly:!Oe,value:oe,onBeforeChange:function(e,n,t){ae(t)},editorHeight:"350px"})}),(0,O.jsxs)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[!A&&(0,O.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){ae("{}")},children:"Clear"}),(0,O.jsx)(w.s,{scopes:[T.Ft.ADMIN_CREATE_POLICY],resource:T.C3,errorProps:{disabled:!0},children:(0,O.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:ee||!ze,children:"Save"})})]}),ee&&(0,O.jsx)(u.ZP,{item:!0,xs:12,children:(0,O.jsx)(h.Z,{})})]})})]})}]})]})]})}))},26759:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},83449:function(e,n,t){"use strict";t.d(n,{ZP:function(){return s},_i:function(){return c},pQ:function(){return d},uU:function(){return l}});var i=t(29439),r=t(72791),o=t(80184),a=r.createContext(null);function s(e){var n=e.children,t=e.value,s=function(){var e=r.useState(null),n=(0,i.Z)(e,2),t=n[0],o=n[1];return r.useEffect((function(){o("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),c=r.useMemo((function(){return{idPrefix:s,value:t}}),[s,t]);return(0,o.jsx)(a.Provider,{value:c,children:n})}function c(){return r.useContext(a)}function l(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function d(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){"use strict";var i=t(87462),r=t(63366),o=t(72791),a=t(18073),s=t(83449),c=t(80184),l=["children"],d=o.forwardRef((function(e,n){var t=e.children,d=(0,r.Z)(e,l),u=(0,s._i)();if(null===u)throw new TypeError("No TabContext provided");var p=o.Children.map(t,(function(e){return o.isValidElement(e)?o.cloneElement(e,{"aria-controls":(0,s.uU)(u,e.props.value),id:(0,s.pQ)(u,e.props.value)}):null}));return(0,c.jsx)(a.Z,(0,i.Z)({},d,{ref:n,value:u.value,children:p}))}));n.Z=d},82851:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var i=t(87462),r=t(63366),o=t(72791),a=t(28182),s=t(66934),c=t(31402),l=t(94419),d=t(21217);function u(e){return(0,d.Z)("MuiTabPanel",e)}(0,t(75878).Z)("MuiTabPanel",["root"]);var p=t(83449),h=t(80184),x=["children","className","value"],f=(0,s.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),m=o.forwardRef((function(e,n){var t=(0,c.Z)({props:e,name:"MuiTabPanel"}),o=t.children,s=t.className,d=t.value,m=(0,r.Z)(t,x),v=(0,i.Z)({},t),Z=function(e){var n=e.classes;return(0,l.Z)({root:["root"]},u,n)}(v),b=(0,p._i)();if(null===b)throw new TypeError("No TabContext provided");var j=(0,p.uU)(b,d),g=(0,p.pQ)(b,d);return(0,h.jsx)(f,(0,i.Z)({"aria-labelledby":g,className:(0,a.Z)(Z.root,s),hidden:d!==b.value,id:j,ref:n,role:"tabpanel",ownerState:v},m,{children:d===b.value&&o}))}))},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return S}});var i=t(4942),r=t(63366),o=t(87462),a=t(72791),s=t(94419),c=t(12065),l=t(97278),d=t(76189),u=t(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),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"),x=(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),m=t(31402),v=t(66934),Z=t(21217);function b(e){return(0,Z.Z)("MuiCheckbox",e)}var j=(0,t(75878).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),g=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,v.ZP)(l.Z,{shouldForwardProp:function(e){return(0,v.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.indeterminate&&n.indeterminate,"default"!==t.color&&n["color".concat((0,f.Z)(t.color))]]}})((function(e){var n,t=e.theme,r=e.ownerState;return(0,o.Z)({color:t.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===r.color?t.palette.action.active:t.palette[r.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(n={},(0,i.Z)(n,"&.".concat(j.checked,", &.").concat(j.indeterminate),{color:t.palette[r.color].main}),(0,i.Z)(n,"&.".concat(j.disabled),{color:t.palette.action.disabled}),n))})),y=(0,u.jsx)(h,{}),E=(0,u.jsx)(p,{}),P=(0,u.jsx)(x,{}),S=a.forwardRef((function(e,n){var t,i,c=(0,m.Z)({props:e,name:"MuiCheckbox"}),l=c.checkedIcon,d=void 0===l?y:l,p=c.color,h=void 0===p?"primary":p,x=c.icon,v=void 0===x?E:x,Z=c.indeterminate,j=void 0!==Z&&Z,S=c.indeterminateIcon,N=void 0===S?P:S,R=c.inputProps,T=c.size,w=void 0===T?"medium":T,A=(0,r.Z)(c,g),F=j?N:v,I=j?N:d,M=(0,o.Z)({},c,{color:h,indeterminate:j,size:w}),L=function(e){var n=e.classes,t=e.indeterminate,i=e.color,r={root:["root",t&&"indeterminate","color".concat((0,f.Z)(i))]},a=(0,s.Z)(r,b,n);return(0,o.Z)({},n,a)}(M);return(0,u.jsx)(C,(0,o.Z)({type:"checkbox",inputProps:(0,o.Z)({"data-indeterminate":j},R),icon:a.cloneElement(F,{fontSize:null!=(t=F.props.fontSize)?t:w}),checkedIcon:a.cloneElement(I,{fontSize:null!=(i=I.props.fontSize)?i:w}),ownerState:M,ref:n},A,{classes:L}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return C}});var i=t(4942),r=t(63366),o=t(87462),a=t(72791),s=t(28182),c=t(94419),l=t(14036),d=t(20890),u=t(93840),p=t(52930),h=t(66934),x=t(21217);function f(e){return(0,x.Z)("MuiInputAdornment",e)}var m,v=(0,t(75878).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),Z=t(31402),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,o.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(n.vars||n).palette.action.active},"filled"===t.variant&&(0,i.Z)({},"&.".concat(v.positionStart,"&:not(.").concat(v.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,h=t.className,x=t.component,v=void 0===x?"div":x,C=t.disablePointerEvents,y=void 0!==C&&C,E=t.disableTypography,P=void 0!==E&&E,S=t.position,N=t.variant,R=(0,r.Z)(t,j),T=(0,p.Z)()||{},w=N;N&&T.variant,T&&!w&&(w=T.variant);var A=(0,o.Z)({},t,{hiddenLabel:T.hiddenLabel,size:T.size,disablePointerEvents:y,position:S,variant:w}),F=function(e){var n=e.classes,t=e.disablePointerEvents,i=e.hiddenLabel,r=e.position,o=e.size,a=e.variant,s={root:["root",t&&"disablePointerEvents",r&&"position".concat((0,l.Z)(r)),a,i&&"hiddenLabel",o&&"size".concat((0,l.Z)(o))]};return(0,c.Z)(s,f,n)}(A);return(0,b.jsx)(u.Z.Provider,{value:null,children:(0,b.jsx)(g,(0,o.Z)({as:v,ownerState:A,className:(0,s.Z)(F.root,h),ref:n},R,{children:"string"!==typeof i||P?(0,b.jsxs)(a.Fragment,{children:["start"===S?m||(m=(0,b.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,b.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))},26769:function(e,n,t){var i=t(39066),r=t(93629),o=t(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&o(e)&&"[object String]"==i(e)}}}]);
-//# sourceMappingURL=1367.570f471e.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1367.570f471e.chunk.js.map b/portal-ui/build/static/js/1367.570f471e.chunk.js.map
deleted file mode 100644
index bc109b91a..000000000
--- a/portal-ui/build/static/js/1367.570f471e.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1367.570f471e.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Policies/PolicyView.tsx","screens/Console/Policies/PolicyDetails.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n {routes}
\n ) : null}\n \n \n \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#E7A219\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number\n) => {\n if (activeDisks <= totalDrives / 2) {\n return STATUS_COLORS.RED;\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeDisks === totalDrives) {\n return STATUS_COLORS.GREEN;\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"online\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return STATUS_COLORS.RED;\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeNetwork === networkTotal) {\n return STATUS_COLORS.GREEN;\n }\n};\n","// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport { IAMStatement } from \"./types\";\nimport { Box } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { DisabledIcon, EnabledIcon } from \"../../../icons\";\nimport { STATUS_COLORS } from \"../Dashboard/BasicDashboard/Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n });\n\nconst rowGridStyle = {\n display: \"grid\",\n gridTemplateColumns: \"60px 1fr\",\n gap: \"15px\",\n};\n\nconst escapeRegExp = (str = \"\") =>\n str.replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n\nconst Highlight = ({ search = \"\", children = \"\" }): any => {\n const txtParts = new RegExp(`(${escapeRegExp(search)})`, \"i\");\n const parts = String(children).split(txtParts);\n\n if (search) {\n return parts.map((part, index) =>\n txtParts.test(part) ? {part} : part\n );\n } else {\n return children;\n }\n};\n\nconst PolicyView = ({\n policyStatements,\n classes = {},\n}: {\n policyStatements: IAMStatement[];\n classes?: any;\n}) => {\n const [filter, setFilter] = useState(\"\");\n\n return (\n \n \n \n Statements \n \n \n \n \n {policyStatements.map((stmt, i) => {\n const effect = stmt.Effect;\n const isAllow = effect === \"Allow\";\n return (\n \n \n Effect: \n \n {isAllow ? : }\n {effect}\n \n \n\n \n \n Actions: \n \n {stmt.Action &&\n stmt.Action.map((act, actIndex) => (\n \n {act} \n
\n ))}\n \n \n \n Resources: \n \n {stmt.Resource &&\n stmt.Resource.map((res, resIndex) => (\n \n {\" \"}\n {res} \n
\n ))}\n \n \n \n \n );\n })}\n \n \n );\n};\n\nexport default withStyles(styles)(PolicyView);\n","// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { IAMPolicy, IAMStatement, Policy } from \"./types\";\nimport { useDispatch, useSelector } 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\";\n\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 hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport PolicyView from \"./PolicyView\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../systemSlice\";\nimport { selFeatures } from \"../consoleSlice\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n paddingTop: 16,\n },\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n height: \"100%\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n minHeight: \"450px\",\n },\n statement: {\n border: \"1px solid #DADADA\",\n padding: 8,\n marginBottom: 8,\n borderRadius: 4,\n },\n labelCol: {\n fontWeight: \"bold\",\n },\n ...actionsTray,\n ...searchField,\n ...modalBasic,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IPolicyDetailsProps {\n classes: any;\n match: any;\n}\n\nconst PolicyDetails = ({ classes, match }: IPolicyDetailsProps) => {\n const dispatch = useDispatch();\n\n const features = useSelector(selFeatures);\n\n const [policy, setPolicy] = useState(null);\n const [policyStatements, setPolicyStatements] = useState([]);\n const [userList, setUserList] = useState([]);\n const [groupList, setGroupList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n\n const policyName = decodeURLString(match.params[\"policyName\"]);\n\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [loadingPolicy, setLoadingPolicy] = useState(true);\n const [filterUsers, setFilterUsers] = useState(\"\");\n const [loadingUsers, setLoadingUsers] = useState(true);\n const [filterGroups, setFilterGroups] = useState(\"\");\n const [loadingGroups, setLoadingGroups] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n [IAM_SCOPES.ADMIN_LIST_GROUPS, IAM_SCOPES.ADMIN_GET_GROUP],\n true\n );\n\n const viewGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n const displayUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const displayPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const editPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CREATE_POLICY,\n ]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (editPolicy) {\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n dispatch(setSnackBarMessage(\"Policy successfully updated\"));\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n dispatch(setErrorSnackMessage(err));\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/users`\n )\n .then((result: any) => {\n setUserList(result);\n setLoadingUsers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingUsers(false);\n });\n } else {\n setLoadingUsers(false);\n }\n }\n };\n\n const loadGroupsForPolicy = () => {\n if (loadingGroups) {\n if (displayGroups && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/groups`\n )\n .then((result: any) => {\n setGroupList(result);\n setLoadingGroups(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingGroups(false);\n });\n } else {\n setLoadingGroups(false);\n }\n }\n };\n const loadPolicyDetails = () => {\n if (loadingPolicy) {\n if (displayPolicy) {\n api\n .invoke(\"GET\", `/api/v1/policy/${encodeURLString(policyName)}`)\n .then((result: any) => {\n if (result) {\n setPolicy(result);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.policy), null, 4)\n : \"\"\n );\n const pol: IAMPolicy = JSON.parse(result.policy);\n setPolicyStatements(pol.Statement);\n }\n setLoadingPolicy(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingPolicy(false);\n });\n } else {\n setLoadingPolicy(false);\n }\n }\n };\n\n if (loadingPolicy) {\n loadPolicyDetails();\n loadUsersForPolicy();\n loadGroupsForPolicy();\n }\n }, [\n policyName,\n loadingPolicy,\n loadingUsers,\n loadingGroups,\n setUserList,\n setGroupList,\n setPolicyDefinition,\n setPolicy,\n setLoadingUsers,\n setLoadingGroups,\n displayUsers,\n displayGroups,\n displayPolicy,\n ldapIsEnabled,\n dispatch,\n ]);\n\n const resetForm = () => {\n setPolicyDefinition(\"{}\");\n };\n\n const validSave = policyName.trim() !== \"\";\n\n const deletePolicy = () => {\n setDeleteOpen(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n history.push(IAM_PAGES.POLICIES);\n };\n\n const userViewAction = (user: any) => {\n history.push(`${IAM_PAGES.USERS}/${encodeURLString(user)}`);\n };\n const userTableActions = [\n {\n type: \"view\",\n onClick: userViewAction,\n disableButtonFunction: () => !viewUser,\n },\n ];\n\n const filteredUsers = userList.filter((elementItem) =>\n elementItem.includes(filterUsers)\n );\n\n const groupViewAction = (group: any) => {\n history.push(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const groupTableActions = [\n {\n type: \"view\",\n onClick: groupViewAction,\n disableButtonFunction: () => !viewGroup,\n },\n ];\n\n const filteredGroups = groupList.filter((elementItem) =>\n elementItem.includes(filterGroups)\n );\n\n return (\n \n {deleteOpen && (\n \n )}\n \n \n \n }\n />\n\n \n \n \n \n \n }\n title={policyName}\n subTitle={IAM Policy }\n actions={\n \n \n }\n onClick={deletePolicy}\n />\n \n\n }\n onClick={() => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n }}\n />\n \n }\n />\n \n\n \n {{\n tabConfig: { label: \"Summary\", disabled: !displayPolicy },\n content: (\n \n Policy Summary
\n \n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n },\n content: (\n \n Users
\n \n \n {\n setFilterUsers(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n\n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n },\n content: (\n \n Groups
\n \n \n {\n setFilterGroups(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n \n \n ),\n }}\n {{\n tabConfig: { label: \"Raw Policy\", disabled: !displayPolicy },\n content: (\n \n Raw Policy
\n \n \n ),\n }}\n \n \n \n );\n};\n\nexport default withStyles(styles)(PolicyDetails);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of ` ` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { 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.vars || 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","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","searchField","adornment","placeholder","adornmentPosition","overrideClass","inputProps","disableUnderline","position","id","InputProps","e","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","borderRight","flexFlow","borderBottom","marginRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","children","selectedTab","routes","isRouteTabs","React","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","event","newValue","orientation","scrollButtons","tabList","map","index","tabHeader","disableRipple","disableTouchRipple","focusRipple","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","rowGridStyle","gridTemplateColumns","gap","Highlight","search","txtParts","RegExp","replace","escapeRegExp","parts","String","split","part","test","maxWidth","policyStatements","useState","filter","setFilter","Grid","container","Box","sm","SearchBox","paddingTop","stmt","i","effect","Effect","isAllow","fill","Action","act","actIndex","Resource","res","resIndex","DeletePolicy","withSuspense","buttonContainer","textAlign","pageContainer","border","paperContainer","statement","borderRadius","labelCol","actionsTray","modalBasic","containerForHeader","spacing","match","dispatch","useDispatch","features","useSelector","selFeatures","policy","setPolicy","setPolicyStatements","userList","setUserList","groupList","setGroupList","addLoading","setAddLoading","policyName","decodeURLString","params","policyDefinition","setPolicyDefinition","loadingPolicy","setLoadingPolicy","filterUsers","setFilterUsers","loadingUsers","setLoadingUsers","filterGroups","setFilterGroups","loadingGroups","setLoadingGroups","deleteOpen","setDeleteOpen","ldapIsEnabled","includes","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","viewGroup","displayUsers","viewUser","displayPolicy","editPolicy","useEffect","api","encodeURLString","then","result","JSON","stringify","parse","pol","Statement","catch","err","setErrorSnackMessage","validSave","trim","userTableActions","type","user","history","IAM_PAGES","disableButtonFunction","filteredUsers","elementItem","groupTableActions","group","filteredGroups","Fragment","selectedPolicy","closeDeleteModalAndRefresh","refresh","PageHeader","BackLink","to","PageLayout","ScreenTitle","IAMPoliciesIcon","subTitle","actions","SecureComponent","scopes","resource","errorProps","disabled","RBIconButton","TrashIcon","RefreshIcon","VerticalTabs","sectionTitle","Paper","TextField","val","startAdornment","InputAdornment","SearchIcon","TableWrapper","itemActions","columns","elementKey","isLoading","records","entityName","idField","noValidate","autoComplete","onSubmit","preventDefault","name","_","setSnackBarMessage","CodeMirrorWrapper","editor","data","clearButton","Button","LinearProgress","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Context","TabContext","props","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","root","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","palette","secondary","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","size","slots","composedClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","whiteSpace","vars","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/1367.69870fc1.chunk.js b/portal-ui/build/static/js/1367.69870fc1.chunk.js
new file mode 100644
index 000000000..c9937de1a
--- /dev/null
+++ b/portal-ui/build/static/js/1367.69870fc1.chunk.js
@@ -0,0 +1,2 @@
+(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1367,7923],{92217:function(e,n,t){"use strict";var i=t(1413),r=t(72791),o=t(61889),a=t(30829),s=t(20068),c=t(64554),l=t(11135),d=t(25787),u=t(84570),p=t(23814),h=t(3923),x=t(40603),f=t(78029),m=t.n(f),v=t(85457),Z=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)({},p.YI))}))((function(e){var n=e.value,t=e.label,i=void 0===t?"":t,l=e.tooltip,d=void 0===l?"":l,p=e.mode,f=void 0===p?"json":p,b=e.classes,j=e.onBeforeChange,g=(e.readOnly,e.editorHeight),C=void 0===g?"250px":g;return(0,Z.jsxs)(r.Fragment,{children:[(0,Z.jsx)(o.ZP,{item:!0,xs:12,children:(0,Z.jsxs)(a.Z,{className:b.inputLabel,children:[(0,Z.jsx)("span",{children:i}),""!==d&&(0,Z.jsx)("div",{className:b.tooltipContainer,children:(0,Z.jsx)(s.Z,{title:d,placement:"top-start",children:(0,Z.jsx)("div",{className:b.tooltip,children:(0,Z.jsx)(u.Z,{})})})})]})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:C,overflow:"auto"},children:(0,Z.jsx)(v.Z,{value:n,language:f,onChange:function(e){j(null,null,e.target.value)},padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace"}})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:"#f7f7f7"},children:(0,Z.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,Z.jsx)(m(),{text:n,children:(0,Z.jsx)(x.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,Z.jsx)(h.TIy,{}),color:"primary",variant:"outlined"})})})})]})}))},59114:function(e,n,t){"use strict";var i=t(4942),r=t(1413),o=(t(72791),t(63466)),a=t(74900),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,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,r=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,p=e.overrideClass,h=e.value,x=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:r.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:p||r.searchField,id:"search-resource",label:"",InputProps:x,onChange:function(e){c(e.target.value)},variant:"standard",value:h})}))},50276:function(e,n,t){"use strict";var i=t(1413),r=t(29439),o=t(72791),a=t(64554),s=t(43896),c=t(83449),l=t(47283),d=t(82851),u=t(25787),p=t(13967),h=t(11135),x=t(95193),f=t(80184),m={minHeight:60};n.Z=(0,u.Z)((function(e){return(0,h.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,u=e.selectedTab,h=void 0===u?"0":u,v=e.routes,Z=e.isRouteTabs,b=o.useState(h),j=(0,r.Z)(b,2),g=j[0],C=j[1],y=(0,p.Z)(),E=(0,x.Z)(y.breakpoints.down("md")),P=[],S=[];return n?(n.forEach((function(e){P.push(e.tabConfig),S.push(e.content)})),(0,f.jsx)(c.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:E?"horizontal":"vertical",variant:E?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:P.map((function(e,n){return e?(0,f.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:m},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,f.jsxs)(a.Z,{className:t.tabContentContainer,children:[Z?null:S.map((function(e,n){return(0,f.jsx)(d.Z,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),Z?(0,f.jsx)("div",{className:t.tabPanel,children:v}):null]})]})})):null}))},879:function(e,n,t){"use strict";t.d(n,{D_:function(){return a},Et:function(){return r},GJ:function(){return o},yh:function(){return i}});var i={RED:"#C83B51",GREEN:"#4CCB92",YELLOW:"#E7A219"},r=function(e,n){return e<=n/2?i.RED:2!==n&&e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0},o=function(e){switch(e){case"offline":return i.RED;case"online":return i.GREEN;default:return i.YELLOW}},a=function(e,n){return e<=n/2?i.RED:e===n/2+1?i.YELLOW:e===n?i.GREEN:void 0}},1191:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return W}});var i=t(29439),r=t(1413),o=t(72791),a=t(60364),s=t(16871),c=t(11135),l=t(25787),d=t(23814),u=t(10703),p=t(61889),h=t(36151),x=t(40986),f=t(92983),m=t(81207),v=t(32291),Z=t(92217),b=t(63466),j=t(27391),g=t(14917),C=t(64244),y=t(28789),E=t(74900),P=t(54599),S=t(74794),N=t(50276),R=t(84669),T=t(56087),w=t(38442),A=t(75578),F=t(40603),I=t(64554),M=t(59114),L=t(3923),k=t(879),O=t(80184),z={display:"grid",gridTemplateColumns:"60px 1fr",gap:"15px"},D=function(e){var n=e.search,t=void 0===n?"":n,i=e.children,r=void 0===i?"":i,o=new RegExp("(".concat(function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}(t),")"),"i"),a=String(r).split(o);return t?a.map((function(e,n){return o.test(e)?(0,O.jsx)("mark",{children:e},n):e})):r},_=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,r.Z)((0,r.Z)({},d.qg.searchField),{},{maxWidth:380})})}))((function(e){var n=e.policyStatements,t=e.classes,r=void 0===t?{}:t,a=(0,o.useState)(""),s=(0,i.Z)(a,2),c=s[0],l=s[1];return(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsxs)(I.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},alignItems:"center",justifyContent:"space-between",gap:"15px"},children:[(0,O.jsx)(I.Z,{children:"Statements"}),(0,O.jsx)(M.Z,{placeholder:"Search",onChange:l,overrideClass:r.searchField,value:c})]})}),(0,O.jsx)(p.ZP,{item:!0,xs:12,sx:{"& .policy-row":{borderBottom:"1px solid #eaeaea"},"& .policy-row:first-child":{borderTop:"1px solid #eaeaea"},"& .policy-row:last-child":{borderBottom:"0px"},paddingTop:"15px","& mark":{color:"#000000",fontWeight:500}},children:n.map((function(e,n){var t=e.Effect,i="Allow"===t;return(0,O.jsxs)(I.Z,{className:"policy-row",sx:{display:"grid",gridTemplateColumns:"1fr",gap:"15px",fontSize:"14px",padding:"10px 0 10px 0","& .label":{fontWeight:600}},children:[(0,O.jsxs)(I.Z,{sx:z,children:[(0,O.jsx)(I.Z,{className:"label",children:"Effect:"}),(0,O.jsxs)(I.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{marginRight:"5px",fill:i?k.yh.GREEN:k.yh.RED,height:"14px",width:"14px"}},children:[i?(0,O.jsx)(L.E31,{}):(0,O.jsx)(L.dRf,{}),t]})]}),(0,O.jsxs)(I.Z,{sx:{display:"grid",gridTemplateColumns:{sm:"1fr 1fr",xs:"1fr"},gap:"15px"},children:[(0,O.jsxs)(I.Z,{sx:z,children:[(0,O.jsx)(I.Z,{className:"label",children:"Actions:"}),(0,O.jsx)(I.Z,{children:e.Action&&e.Action.map((function(e,t){return(0,O.jsx)("div",{children:(0,O.jsx)(D,{search:c,children:e})},"".concat(n,"-r-").concat(t))}))})]}),(0,O.jsxs)(I.Z,{sx:z,children:[(0,O.jsx)(I.Z,{className:"label",children:"Resources:"}),(0,O.jsx)(I.Z,{children:e.Resource&&e.Resource.map((function(e,t){return(0,O.jsxs)("div",{children:[" ",(0,O.jsx)(D,{search:c,children:e})]},"".concat(n,"-r-").concat(t))}))})]})]})]},"".concat(n))}))})]})})),B=t(45248),G=t(87995),U=t(46078),H=t(81551),V=(0,A.Z)(o.lazy((function(){return t.e(312).then(t.bind(t,312))}))),W=(0,l.Z)((function(e){return(0,c.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({buttonContainer:{textAlign:"right",paddingTop:16},pageContainer:{border:"1px solid #EAEAEA",height:"100%"},paperContainer:{padding:"15px 15px 15px 50px",minHeight:"450px"},statement:{border:"1px solid #DADADA",padding:8,marginBottom:8,borderRadius:4},labelCol:{fontWeight:"bold"}},d.OR),d.qg),d.oO),(0,d.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=(0,H.TL)(),r=(0,s.s0)(),c=(0,s.UO)(),l=(0,a.v9)(U.$4),d=(0,o.useState)(null),A=(0,i.Z)(d,2),I=A[0],M=A[1],L=(0,o.useState)([]),k=(0,i.Z)(L,2),z=k[0],D=k[1],W=(0,o.useState)([]),Y=(0,i.Z)(W,2),q=Y[0],J=Y[1],Q=(0,o.useState)([]),$=(0,i.Z)(Q,2),K=$[0],X=$[1],ee=(0,o.useState)(!1),ne=(0,i.Z)(ee,2),te=ne[0],ie=ne[1],re=(0,B.IO)(c.policyName||""),oe=(0,o.useState)(""),ae=(0,i.Z)(oe,2),se=ae[0],ce=ae[1],le=(0,o.useState)(!0),de=(0,i.Z)(le,2),ue=de[0],pe=de[1],he=(0,o.useState)(""),xe=(0,i.Z)(he,2),fe=xe[0],me=xe[1],ve=(0,o.useState)(!0),Ze=(0,i.Z)(ve,2),be=Ze[0],je=Ze[1],ge=(0,o.useState)(""),Ce=(0,i.Z)(ge,2),ye=Ce[0],Ee=Ce[1],Pe=(0,o.useState)(!0),Se=(0,i.Z)(Pe,2),Ne=Se[0],Re=Se[1],Te=(0,o.useState)(!1),we=(0,i.Z)(Te,2),Ae=we[0],Fe=we[1],Ie=l&&l.includes("ldap-idp")||!1,Me=(0,w.F)(T.C3,[T.Ft.ADMIN_LIST_GROUPS,T.Ft.ADMIN_GET_GROUP],!0),Le=(0,w.F)(T.C3,[T.Ft.ADMIN_GET_GROUP]),ke=(0,w.F)(T.C3,[T.Ft.ADMIN_LIST_GROUPS]),Oe=(0,w.F)(T.C3,[T.Ft.ADMIN_GET_USER]),ze=(0,w.F)(T.C3,[T.Ft.ADMIN_GET_POLICY]),De=(0,w.F)(T.C3,[T.Ft.ADMIN_CREATE_POLICY]);(0,o.useEffect)((function(){ue&&(ue&&(ze?m.Z.invoke("GET","/api/v1/policy/".concat((0,B.LL)(re))).then((function(e){if(e){M(e),ce(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);D(n.Statement)}pe(!1)})).catch((function(e){t((0,G.Ih)(e)),pe(!1)})):pe(!1)),be&&(ke&&!Ie?m.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(re),"/users")).then((function(e){J(e),je(!1)})).catch((function(e){t((0,G.Ih)(e)),je(!1)})):je(!1)),Ne&&(Me&&!Ie?m.Z.invoke("GET","/api/v1/policies/".concat((0,B.LL)(re),"/groups")).then((function(e){X(e),Re(!1)})).catch((function(e){t((0,G.Ih)(e)),Re(!1)})):Re(!1)))}),[re,ue,be,Ne,J,X,ce,M,je,Re,ke,Me,ze,Ie,t]);var _e=""!==re.trim(),Be=[{type:"view",onClick:function(e){r("".concat(T.gA.USERS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Oe}}],Ge=q.filter((function(e){return e.includes(fe)})),Ue=[{type:"view",onClick:function(e){r("".concat(T.gA.GROUPS,"/").concat((0,B.LL)(e)))},disableButtonFunction:function(){return!Le}}],He=K.filter((function(e){return e.includes(ye)}));return(0,O.jsxs)(o.Fragment,{children:[Ae&&(0,O.jsx)(V,{deleteOpen:Ae,selectedPolicy:re,closeDeleteModalAndRefresh:function(e){Fe(!1),r(T.gA.POLICIES)}}),(0,O.jsx)(v.Z,{label:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(R.Z,{to:T.gA.POLICIES,label:"Policy"})})}),(0,O.jsxs)(S.Z,{className:n.pageContainer,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsx)(g.Z,{icon:(0,O.jsx)(o.Fragment,{children:(0,O.jsx)(C.Z,{width:40})}),title:re,subTitle:(0,O.jsx)(o.Fragment,{children:"IAM Policy"}),actions:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)(w.s,{scopes:[T.Ft.ADMIN_DELETE_POLICY],resource:T.C3,errorProps:{disabled:!0},children:(0,O.jsx)(F.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,O.jsx)(P.Z,{}),onClick:function(){Fe(!0)}})}),(0,O.jsx)(F.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,O.jsx)(y.default,{}),onClick:function(){je(!0),Re(!0),pe(!0)}})]})})}),(0,O.jsxs)(N.Z,{children:[{tabConfig:{label:"Summary",disabled:!ze},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Policy Summary"}),(0,O.jsx)(u.Z,{className:n.paperContainer,children:(0,O.jsx)(_,{policyStatements:z})})]})},{tabConfig:{label:"Users",disabled:!ke||Ie},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Users"}),(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(j.Z,{placeholder:"Search Users",className:n.searchField,id:"search-resource",label:"",onChange:function(e){me(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(b.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(f.Z,{itemActions:Be,columns:[{label:"Name",elementKey:"name"}],isLoading:be,records:Ge,entityName:"Users",idField:"name"})]})]})},{tabConfig:{label:"Groups",disabled:!Me||Ie},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Groups"}),(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,O.jsx)(j.Z,{placeholder:"Search Groups",className:n.searchField,id:"search-resource",label:"",onChange:function(e){Ee(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,O.jsx)(b.Z,{position:"start",children:(0,O.jsx)(E.Z,{})})},variant:"standard"})}),(0,O.jsx)(f.Z,{itemActions:Ue,columns:[{label:"Name",elementKey:"name"}],isLoading:Ne,records:He,entityName:"Groups",idField:"name"})]})]})},{tabConfig:{label:"Raw Policy",disabled:!ze},content:(0,O.jsxs)(o.Fragment,{children:[(0,O.jsx)("div",{className:n.sectionTitle,children:"Raw Policy"}),(0,O.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),te||(ie(!0),De?m.Z.invoke("POST","/api/v1/policies",{name:re,policy:se}).then((function(e){ie(!1),t((0,G.y1)("Policy successfully updated"))})).catch((function(e){ie(!1),t((0,G.Ih)(e))})):ie(!1))},children:(0,O.jsxs)(p.ZP,{container:!0,children:[(0,O.jsx)(p.ZP,{item:!0,xs:12,style:{border:"1px solid #eaeaea"},children:(0,O.jsx)(Z.Z,{readOnly:!De,value:se,onBeforeChange:function(e,n,t){ce(t)},editorHeight:"350px"})}),(0,O.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[!I&&(0,O.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){ce("{}")},children:"Clear"}),(0,O.jsx)(w.s,{scopes:[T.Ft.ADMIN_CREATE_POLICY],resource:T.C3,errorProps:{disabled:!0},children:(0,O.jsx)(h.Z,{type:"submit",variant:"contained",color:"primary",disabled:te||!_e,children:"Save"})})]}),te&&(0,O.jsx)(p.ZP,{item:!0,xs:12,children:(0,O.jsx)(x.Z,{})})]})})]})}]})]})]})}))},26759:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var r=i(t(45649)),o=t(80184),a=(0,r.default)((0,o.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},83449:function(e,n,t){"use strict";t.d(n,{ZP:function(){return s},_i:function(){return c},pQ:function(){return d},uU:function(){return l}});var i=t(29439),r=t(72791),o=t(80184),a=r.createContext(null);function s(e){var n=e.children,t=e.value,s=function(){var e=r.useState(null),n=(0,i.Z)(e,2),t=n[0],o=n[1];return r.useEffect((function(){o("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),c=r.useMemo((function(){return{idPrefix:s,value:t}}),[s,t]);return(0,o.jsx)(a.Provider,{value:c,children:n})}function c(){return r.useContext(a)}function l(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function d(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}},47283:function(e,n,t){"use strict";var i=t(87462),r=t(63366),o=t(72791),a=t(18073),s=t(83449),c=t(80184),l=["children"],d=o.forwardRef((function(e,n){var t=e.children,d=(0,r.Z)(e,l),u=(0,s._i)();if(null===u)throw new TypeError("No TabContext provided");var p=o.Children.map(t,(function(e){return o.isValidElement(e)?o.cloneElement(e,{"aria-controls":(0,s.uU)(u,e.props.value),id:(0,s.pQ)(u,e.props.value)}):null}));return(0,c.jsx)(a.Z,(0,i.Z)({},d,{ref:n,value:u.value,children:p}))}));n.Z=d},82851:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var i=t(87462),r=t(63366),o=t(72791),a=t(28182),s=t(66934),c=t(31402),l=t(94419),d=t(21217);function u(e){return(0,d.Z)("MuiTabPanel",e)}(0,t(75878).Z)("MuiTabPanel",["root"]);var p=t(83449),h=t(80184),x=["children","className","value"],f=(0,s.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),m=o.forwardRef((function(e,n){var t=(0,c.Z)({props:e,name:"MuiTabPanel"}),o=t.children,s=t.className,d=t.value,m=(0,r.Z)(t,x),v=(0,i.Z)({},t),Z=function(e){var n=e.classes;return(0,l.Z)({root:["root"]},u,n)}(v),b=(0,p._i)();if(null===b)throw new TypeError("No TabContext provided");var j=(0,p.uU)(b,d),g=(0,p.pQ)(b,d);return(0,h.jsx)(f,(0,i.Z)({"aria-labelledby":g,className:(0,a.Z)(Z.root,s),hidden:d!==b.value,id:j,ref:n,role:"tabpanel",ownerState:v},m,{children:d===b.value&&o}))}))},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return S}});var i=t(4942),r=t(63366),o=t(87462),a=t(72791),s=t(94419),c=t(12065),l=t(97278),d=t(76189),u=t(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),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"),x=(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),m=t(31402),v=t(66934),Z=t(21217);function b(e){return(0,Z.Z)("MuiCheckbox",e)}var j=(0,t(75878).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),g=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,v.ZP)(l.Z,{shouldForwardProp:function(e){return(0,v.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.indeterminate&&n.indeterminate,"default"!==t.color&&n["color".concat((0,f.Z)(t.color))]]}})((function(e){var n,t=e.theme,r=e.ownerState;return(0,o.Z)({color:t.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===r.color?t.palette.action.active:t.palette[r.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(n={},(0,i.Z)(n,"&.".concat(j.checked,", &.").concat(j.indeterminate),{color:t.palette[r.color].main}),(0,i.Z)(n,"&.".concat(j.disabled),{color:t.palette.action.disabled}),n))})),y=(0,u.jsx)(h,{}),E=(0,u.jsx)(p,{}),P=(0,u.jsx)(x,{}),S=a.forwardRef((function(e,n){var t,i,c=(0,m.Z)({props:e,name:"MuiCheckbox"}),l=c.checkedIcon,d=void 0===l?y:l,p=c.color,h=void 0===p?"primary":p,x=c.icon,v=void 0===x?E:x,Z=c.indeterminate,j=void 0!==Z&&Z,S=c.indeterminateIcon,N=void 0===S?P:S,R=c.inputProps,T=c.size,w=void 0===T?"medium":T,A=(0,r.Z)(c,g),F=j?N:v,I=j?N:d,M=(0,o.Z)({},c,{color:h,indeterminate:j,size:w}),L=function(e){var n=e.classes,t=e.indeterminate,i=e.color,r={root:["root",t&&"indeterminate","color".concat((0,f.Z)(i))]},a=(0,s.Z)(r,b,n);return(0,o.Z)({},n,a)}(M);return(0,u.jsx)(C,(0,o.Z)({type:"checkbox",inputProps:(0,o.Z)({"data-indeterminate":j},R),icon:a.cloneElement(F,{fontSize:null!=(t=F.props.fontSize)?t:w}),checkedIcon:a.cloneElement(I,{fontSize:null!=(i=I.props.fontSize)?i:w}),ownerState:M,ref:n},A,{classes:L}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return C}});var i=t(4942),r=t(63366),o=t(87462),a=t(72791),s=t(28182),c=t(94419),l=t(14036),d=t(20890),u=t(93840),p=t(52930),h=t(66934),x=t(21217);function f(e){return(0,x.Z)("MuiInputAdornment",e)}var m,v=(0,t(75878).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),Z=t(31402),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,o.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(n.vars||n).palette.action.active},"filled"===t.variant&&(0,i.Z)({},"&.".concat(v.positionStart,"&:not(.").concat(v.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,h=t.className,x=t.component,v=void 0===x?"div":x,C=t.disablePointerEvents,y=void 0!==C&&C,E=t.disableTypography,P=void 0!==E&&E,S=t.position,N=t.variant,R=(0,r.Z)(t,j),T=(0,p.Z)()||{},w=N;N&&T.variant,T&&!w&&(w=T.variant);var A=(0,o.Z)({},t,{hiddenLabel:T.hiddenLabel,size:T.size,disablePointerEvents:y,position:S,variant:w}),F=function(e){var n=e.classes,t=e.disablePointerEvents,i=e.hiddenLabel,r=e.position,o=e.size,a=e.variant,s={root:["root",t&&"disablePointerEvents",r&&"position".concat((0,l.Z)(r)),a,i&&"hiddenLabel",o&&"size".concat((0,l.Z)(o))]};return(0,c.Z)(s,f,n)}(A);return(0,b.jsx)(u.Z.Provider,{value:null,children:(0,b.jsx)(g,(0,o.Z)({as:v,ownerState:A,className:(0,s.Z)(F.root,h),ref:n},R,{children:"string"!==typeof i||P?(0,b.jsxs)(a.Fragment,{children:["start"===S?m||(m=(0,b.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,b.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))},26769:function(e,n,t){var i=t(39066),r=t(93629),o=t(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&o(e)&&"[object String]"==i(e)}}}]);
+//# sourceMappingURL=1367.69870fc1.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1367.69870fc1.chunk.js.map b/portal-ui/build/static/js/1367.69870fc1.chunk.js.map
new file mode 100644
index 000000000..85b244d22
--- /dev/null
+++ b/portal-ui/build/static/js/1367.69870fc1.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1367.69870fc1.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Policies/PolicyView.tsx","screens/Console/Policies/PolicyDetails.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/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 Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label} \n {tooltip !== \"\" && (\n \n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n }}\n />\n \n \n \n \n {}}\n text={\"\"}\n icon={ }\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n {routes}
\n ) : null}\n \n \n \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#E7A219\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number\n) => {\n if (activeDisks <= totalDrives / 2) {\n return STATUS_COLORS.RED;\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeDisks === totalDrives) {\n return STATUS_COLORS.GREEN;\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"online\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return STATUS_COLORS.RED;\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeNetwork === networkTotal) {\n return STATUS_COLORS.GREEN;\n }\n};\n","// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport { IAMStatement } from \"./types\";\nimport { Box } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { DisabledIcon, EnabledIcon } from \"../../../icons\";\nimport { STATUS_COLORS } from \"../Dashboard/BasicDashboard/Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n });\n\nconst rowGridStyle = {\n display: \"grid\",\n gridTemplateColumns: \"60px 1fr\",\n gap: \"15px\",\n};\n\nconst escapeRegExp = (str = \"\") =>\n str.replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n\nconst Highlight = ({ search = \"\", children = \"\" }): any => {\n const txtParts = new RegExp(`(${escapeRegExp(search)})`, \"i\");\n const parts = String(children).split(txtParts);\n\n if (search) {\n return parts.map((part, index) =>\n txtParts.test(part) ? {part} : part\n );\n } else {\n return children;\n }\n};\n\nconst PolicyView = ({\n policyStatements,\n classes = {},\n}: {\n policyStatements: IAMStatement[];\n classes?: any;\n}) => {\n const [filter, setFilter] = useState(\"\");\n\n return (\n \n \n \n Statements \n \n \n \n \n {policyStatements.map((stmt, i) => {\n const effect = stmt.Effect;\n const isAllow = effect === \"Allow\";\n return (\n \n \n Effect: \n \n {isAllow ? : }\n {effect}\n \n \n\n \n \n Actions: \n \n {stmt.Action &&\n stmt.Action.map((act, actIndex) => (\n \n {act} \n
\n ))}\n \n \n \n Resources: \n \n {stmt.Resource &&\n stmt.Resource.map((res, resIndex) => (\n \n {\" \"}\n {res} \n
\n ))}\n \n \n \n \n );\n })}\n \n \n );\n};\n\nexport default withStyles(styles)(PolicyView);\n","// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { IAMPolicy, IAMStatement, Policy } from \"./types\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n modalBasic,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../common/api\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField from \"@mui/material/TextField\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport IAMPoliciesIcon from \"../../../icons/IAMPoliciesIcon\";\nimport RefreshIcon from \"../../../icons/RefreshIcon\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TrashIcon from \"../../../icons/TrashIcon\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport BackLink from \"../../../common/BackLink\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport PolicyView from \"./PolicyView\";\nimport { decodeURLString, encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../systemSlice\";\nimport { selFeatures } from \"../consoleSlice\";\nimport { useAppDispatch } from \"../../../store\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n paddingTop: 16,\n },\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n height: \"100%\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n minHeight: \"450px\",\n },\n statement: {\n border: \"1px solid #DADADA\",\n padding: 8,\n marginBottom: 8,\n borderRadius: 4,\n },\n labelCol: {\n fontWeight: \"bold\",\n },\n ...actionsTray,\n ...searchField,\n ...modalBasic,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IPolicyDetailsProps {\n classes: any;\n}\n\nconst PolicyDetails = ({ classes }: IPolicyDetailsProps) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const params = useParams();\n\n const features = useSelector(selFeatures);\n\n const [policy, setPolicy] = useState(null);\n const [policyStatements, setPolicyStatements] = useState([]);\n const [userList, setUserList] = useState([]);\n const [groupList, setGroupList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n\n const policyName = decodeURLString(params.policyName || \"\");\n\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [loadingPolicy, setLoadingPolicy] = useState(true);\n const [filterUsers, setFilterUsers] = useState(\"\");\n const [loadingUsers, setLoadingUsers] = useState(true);\n const [filterGroups, setFilterGroups] = useState(\"\");\n const [loadingGroups, setLoadingGroups] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n [IAM_SCOPES.ADMIN_LIST_GROUPS, IAM_SCOPES.ADMIN_GET_GROUP],\n true\n );\n\n const viewGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n const displayUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const displayPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const editPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CREATE_POLICY,\n ]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (editPolicy) {\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n dispatch(setSnackBarMessage(\"Policy successfully updated\"));\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n dispatch(setErrorSnackMessage(err));\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/users`\n )\n .then((result: any) => {\n setUserList(result);\n setLoadingUsers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingUsers(false);\n });\n } else {\n setLoadingUsers(false);\n }\n }\n };\n\n const loadGroupsForPolicy = () => {\n if (loadingGroups) {\n if (displayGroups && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURLString(policyName)}/groups`\n )\n .then((result: any) => {\n setGroupList(result);\n setLoadingGroups(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingGroups(false);\n });\n } else {\n setLoadingGroups(false);\n }\n }\n };\n const loadPolicyDetails = () => {\n if (loadingPolicy) {\n if (displayPolicy) {\n api\n .invoke(\"GET\", `/api/v1/policy/${encodeURLString(policyName)}`)\n .then((result: any) => {\n if (result) {\n setPolicy(result);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.policy), null, 4)\n : \"\"\n );\n const pol: IAMPolicy = JSON.parse(result.policy);\n setPolicyStatements(pol.Statement);\n }\n setLoadingPolicy(false);\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoadingPolicy(false);\n });\n } else {\n setLoadingPolicy(false);\n }\n }\n };\n\n if (loadingPolicy) {\n loadPolicyDetails();\n loadUsersForPolicy();\n loadGroupsForPolicy();\n }\n }, [\n policyName,\n loadingPolicy,\n loadingUsers,\n loadingGroups,\n setUserList,\n setGroupList,\n setPolicyDefinition,\n setPolicy,\n setLoadingUsers,\n setLoadingGroups,\n displayUsers,\n displayGroups,\n displayPolicy,\n ldapIsEnabled,\n dispatch,\n ]);\n\n const resetForm = () => {\n setPolicyDefinition(\"{}\");\n };\n\n const validSave = policyName.trim() !== \"\";\n\n const deletePolicy = () => {\n setDeleteOpen(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n navigate(IAM_PAGES.POLICIES);\n };\n\n const userViewAction = (user: any) => {\n navigate(`${IAM_PAGES.USERS}/${encodeURLString(user)}`);\n };\n const userTableActions = [\n {\n type: \"view\",\n onClick: userViewAction,\n disableButtonFunction: () => !viewUser,\n },\n ];\n\n const filteredUsers = userList.filter((elementItem) =>\n elementItem.includes(filterUsers)\n );\n\n const groupViewAction = (group: any) => {\n navigate(`${IAM_PAGES.GROUPS}/${encodeURLString(group)}`);\n };\n\n const groupTableActions = [\n {\n type: \"view\",\n onClick: groupViewAction,\n disableButtonFunction: () => !viewGroup,\n },\n ];\n\n const filteredGroups = groupList.filter((elementItem) =>\n elementItem.includes(filterGroups)\n );\n\n return (\n \n {deleteOpen && (\n \n )}\n \n \n \n }\n />\n\n \n \n \n \n \n }\n title={policyName}\n subTitle={IAM Policy }\n actions={\n \n \n }\n onClick={deletePolicy}\n />\n \n\n }\n onClick={() => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n }}\n />\n \n }\n />\n \n\n \n {{\n tabConfig: { label: \"Summary\", disabled: !displayPolicy },\n content: (\n \n Policy Summary
\n \n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n },\n content: (\n \n Users
\n \n \n {\n setFilterUsers(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n\n \n \n \n ),\n }}\n {{\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n },\n content: (\n \n Groups
\n \n \n {\n setFilterGroups(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n \n \n ),\n }}\n {{\n tabConfig: { label: \"Raw Policy\", disabled: !displayPolicy },\n content: (\n \n Raw Policy
\n \n \n ),\n }}\n \n \n \n );\n};\n\nexport default withStyles(styles)(PolicyDetails);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of ` ` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { 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.vars || 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","fieldBasic","value","label","tooltip","mode","classes","onBeforeChange","readOnly","editorHeight","item","xs","className","inputLabel","tooltipContainer","title","placement","style","maxHeight","overflow","language","onChange","evn","target","padding","fontSize","backgroundColor","fontFamily","sx","borderTop","background","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","onClick","icon","color","variant","searchField","adornment","placeholder","adornmentPosition","overrideClass","inputProps","disableUnderline","position","id","InputProps","e","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","borderRight","flexFlow","borderBottom","marginRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","children","selectedTab","routes","isRouteTabs","React","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","child","push","tabConfig","content","event","newValue","orientation","scrollButtons","tabList","map","index","tabHeader","disableRipple","disableTouchRipple","focusRipple","STATUS_COLORS","RED","GREEN","YELLOW","getDriveStatusColor","activeDisks","totalDrives","serverStatusColor","health_status","getNetworkStatusColor","activeNetwork","networkTotal","rowGridStyle","gridTemplateColumns","gap","Highlight","search","txtParts","RegExp","replace","escapeRegExp","parts","String","split","part","test","maxWidth","policyStatements","useState","filter","setFilter","Grid","container","Box","sm","SearchBox","paddingTop","stmt","i","effect","Effect","isAllow","fill","Action","act","actIndex","Resource","res","resIndex","DeletePolicy","withSuspense","buttonContainer","textAlign","pageContainer","border","paperContainer","statement","borderRadius","labelCol","actionsTray","modalBasic","containerForHeader","spacing","dispatch","useAppDispatch","navigate","useNavigate","params","useParams","features","useSelector","selFeatures","policy","setPolicy","setPolicyStatements","userList","setUserList","groupList","setGroupList","addLoading","setAddLoading","policyName","decodeURLString","policyDefinition","setPolicyDefinition","loadingPolicy","setLoadingPolicy","filterUsers","setFilterUsers","loadingUsers","setLoadingUsers","filterGroups","setFilterGroups","loadingGroups","setLoadingGroups","deleteOpen","setDeleteOpen","ldapIsEnabled","includes","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","viewGroup","displayUsers","viewUser","displayPolicy","editPolicy","useEffect","api","encodeURLString","then","result","JSON","stringify","parse","pol","Statement","catch","err","setErrorSnackMessage","validSave","trim","userTableActions","type","user","IAM_PAGES","disableButtonFunction","filteredUsers","elementItem","groupTableActions","group","filteredGroups","Fragment","selectedPolicy","closeDeleteModalAndRefresh","refresh","PageHeader","BackLink","to","PageLayout","ScreenTitle","IAMPoliciesIcon","subTitle","actions","SecureComponent","scopes","resource","errorProps","disabled","RBIconButton","TrashIcon","RefreshIcon","VerticalTabs","sectionTitle","Paper","TextField","val","startAdornment","InputAdornment","SearchIcon","TableWrapper","itemActions","columns","elementKey","isLoading","records","entityName","idField","noValidate","autoComplete","onSubmit","preventDefault","name","_","setSnackBarMessage","CodeMirrorWrapper","editor","data","clearButton","Button","LinearProgress","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Context","TabContext","props","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","TabList","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","overridesResolver","styles","root","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","palette","secondary","alpha","action","active","main","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","size","slots","composedClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","whiteSpace","vars","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/137.08d76dda.chunk.js.map b/portal-ui/build/static/js/137.08d76dda.chunk.js.map
index 91dfee83e..a0d1071d9 100644
--- a/portal-ui/build/static/js/137.08d76dda.chunk.js.map
+++ b/portal-ui/build/static/js/137.08d76dda.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/137.08d76dda.chunk.js","mappings":"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","sources":["../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-resize-detector/node_modules/tslib/tslib.es6.js","../node_modules/react-resize-detector/node_modules/lodash/isObject.js","../node_modules/react-resize-detector/node_modules/lodash/_root.js","../node_modules/react-resize-detector/node_modules/lodash/_freeGlobal.js","../node_modules/react-resize-detector/node_modules/lodash/now.js","../node_modules/react-resize-detector/node_modules/lodash/_trimmedEndIndex.js","../node_modules/react-resize-detector/node_modules/lodash/_baseTrim.js","../node_modules/react-resize-detector/node_modules/lodash/_Symbol.js","../node_modules/react-resize-detector/node_modules/lodash/_getRawTag.js","../node_modules/react-resize-detector/node_modules/lodash/_objectToString.js","../node_modules/react-resize-detector/node_modules/lodash/_baseGetTag.js","../node_modules/react-resize-detector/node_modules/lodash/isSymbol.js","../node_modules/react-resize-detector/node_modules/lodash/isObjectLike.js","../node_modules/react-resize-detector/node_modules/lodash/toNumber.js","../node_modules/react-resize-detector/node_modules/lodash/debounce.js","../node_modules/react-resize-detector/node_modules/lodash/throttle.js","../node_modules/react-resize-detector/src/utils.ts","../node_modules/react-resize-detector/src/ResizeDetector.tsx","../node_modules/react-resize-detector/src/useResizeDetector.ts","../node_modules/recharts/es6/cartesian/Area.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/chart/AreaChart.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/*! *****************************************************************************\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","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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","/** 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 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 root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\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 * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\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 object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\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 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 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","import debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nexport type patchResizeHandlerType = ReturnType | ReturnType | ResizeObserverCallback;\n\nexport const patchResizeHandler = (\n resizeCallback: ResizeObserverCallback,\n refreshMode: Props['refreshMode'],\n refreshRate: Props['refreshRate'],\n refreshOptions: Props['refreshOptions']\n): patchResizeHandlerType => {\n switch (refreshMode) {\n case 'debounce':\n return debounce(resizeCallback, refreshRate, refreshOptions);\n case 'throttle':\n return throttle(resizeCallback, refreshRate, refreshOptions);\n default:\n return resizeCallback;\n }\n};\n\nexport const isFunction = (fn: any): boolean => typeof fn === 'function';\n\nexport const isSSR = (): boolean => typeof window === 'undefined';\n\nexport const isDOMElement = (element: any): boolean => element instanceof Element || element instanceof HTMLDocument;\n\nexport const createNotifier =\n (\n onResize: Props['onResize'],\n setSize: React.Dispatch>,\n handleWidth: boolean,\n handleHeight: boolean\n ) =>\n ({ width, height }: ReactResizeDetectorDimensions): void => {\n setSize(prev => {\n if (prev.width === width && prev.height === height) {\n // skip if dimensions haven't changed\n return prev;\n }\n\n if ((prev.width === width && !handleHeight) || (prev.height === height && !handleWidth)) {\n // process `handleHeight/handleWidth` props\n return prev;\n }\n\n if (onResize && isFunction(onResize)) {\n onResize(width, height);\n }\n\n return { width, height };\n });\n };\n","import * as React from 'react';\nimport { PureComponent, isValidElement, cloneElement, createRef, ReactNode, ReactElement, RefObject } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport { patchResizeHandler, isFunction, isSSR, isDOMElement, createNotifier } from './utils';\n\nexport interface ReactResizeDetectorDimensions {\n height?: number;\n width?: number;\n}\n\ninterface ChildFunctionProps extends ReactResizeDetectorDimensions {\n targetRef?: RefObject;\n}\n\nexport interface Props {\n /**\n * Function that will be invoked with observable element's width and height.\n * Default: undefined\n */\n onResize?: (width?: number, height?: number) => void;\n /**\n * Trigger update on height change.\n * Default: true\n */\n handleHeight?: boolean;\n /**\n * Trigger onResize on width change.\n * Default: true\n */\n handleWidth?: boolean;\n /**\n * Do not trigger update when a component mounts.\n * Default: false\n */\n skipOnMount?: boolean;\n /**\n * Changes the update strategy. Possible values: \"throttle\" and \"debounce\".\n * See `lodash` docs for more information https://lodash.com/docs/\n * undefined - callback will be fired for every frame.\n * Default: undefined\n */\n refreshMode?: 'throttle' | 'debounce';\n /**\n * Set the timeout/interval for `refreshMode` strategy\n * Default: undefined\n */\n refreshRate?: number;\n /**\n * Pass additional params to `refreshMode` according to lodash docs\n * Default: undefined\n */\n refreshOptions?: { leading?: boolean; trailing?: boolean };\n /**\n * These options will be used as a second parameter of `resizeObserver.observe` method\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/observe\n * Default: undefined\n */\n observerOptions?: ResizeObserverOptions;\n}\n\nexport interface ComponentsProps extends Props {\n /**\n * A selector of an element to observe.\n * You can use this property to attach resize-observer to any DOM element.\n * Please refer to the querySelector docs.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n querySelector?: string;\n /**\n * Valid only for a callback-pattern.\n * Ignored for other render types.\n * Set resize-detector's node type.\n * You can pass any valid React node: string with node's name or element.\n * Can be useful when you need to handle table's or paragraph's resizes.\n * Default: \"div\"\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n nodeType?: keyof JSX.IntrinsicElements; // will be passed to React.createElement()\n /**\n * A DOM element to observe.\n * By default it's a parent element in relation to the ReactResizeDetector component.\n * But you can pass any DOM element to observe.\n * This property is omitted when you pass querySelector.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 6.0.0.\n * Use targetRef instead\n */\n targetDomEl?: ElementT;\n /**\n * A React reference of the element to observe.\n * Pass a reference to the element you want to attach resize handlers to.\n * It must be an instance of React.useRef or React.createRef functions\n * Default: undefined\n */\n targetRef?: RefObject;\n\n render?: (props: ReactResizeDetectorDimensions) => ReactNode;\n\n children?: ReactNode | ((props: ChildFunctionProps) => ReactNode);\n}\n\nclass ResizeDetector extends PureComponent<\n ComponentsProps,\n ReactResizeDetectorDimensions\n> {\n skipOnMount: boolean | undefined;\n targetRef;\n observableElement;\n resizeHandler;\n resizeObserver;\n constructor(props: ComponentsProps) {\n super(props);\n\n const { skipOnMount, refreshMode, refreshRate = 1000, refreshOptions } = props;\n\n this.state = {\n width: undefined,\n height: undefined\n };\n\n this.skipOnMount = skipOnMount;\n this.targetRef = createRef();\n this.observableElement = null;\n\n if (isSSR()) {\n return;\n }\n\n this.resizeHandler = patchResizeHandler(this.createResizeHandler, refreshMode, refreshRate, refreshOptions);\n this.resizeObserver = new window.ResizeObserver(this.resizeHandler);\n }\n\n componentDidMount(): void {\n this.attachObserver();\n }\n\n componentDidUpdate(): void {\n this.attachObserver();\n }\n\n componentWillUnmount(): void {\n if (isSSR()) {\n return;\n }\n this.resizeObserver.disconnect();\n this.cancelHandler();\n }\n\n cancelHandler = (): void => {\n if (this.resizeHandler && this.resizeHandler.cancel) {\n // cancel debounced handler\n this.resizeHandler.cancel();\n this.resizeHandler = null;\n }\n };\n\n attachObserver = (): void => {\n const { targetRef, observerOptions } = this.props;\n\n if (isSSR()) {\n return;\n }\n\n if (targetRef && targetRef.current) {\n this.targetRef.current = targetRef.current;\n }\n\n const element = this.getElement();\n if (!element) {\n // can't find element to observe\n return;\n }\n\n if (this.observableElement && this.observableElement === element) {\n // element is already observed\n return;\n }\n\n this.observableElement = element;\n this.resizeObserver.observe(element, observerOptions);\n };\n\n getElement = (): Element | Text | null => {\n const { querySelector, targetDomEl } = this.props;\n\n if (isSSR()) return null;\n\n // in case we pass a querySelector\n if (querySelector) return document.querySelector(querySelector);\n // in case we pass a DOM element\n if (targetDomEl && isDOMElement(targetDomEl)) return targetDomEl;\n // in case we pass a React ref using React.createRef()\n if (this.targetRef && isDOMElement(this.targetRef.current)) return this.targetRef.current;\n\n // the worse case when we don't receive any information from the parent and the library doesn't add any wrappers\n // we have to use a deprecated `findDOMNode` method in order to find a DOM element to attach to\n const currentElement = findDOMNode(this);\n\n if (!currentElement) return null;\n\n const renderType = this.getRenderType();\n switch (renderType) {\n case 'renderProp':\n return currentElement;\n case 'childFunction':\n return currentElement;\n case 'child':\n return currentElement;\n case 'childArray':\n return currentElement;\n default:\n return currentElement.parentElement;\n }\n };\n\n createResizeHandler: ResizeObserverCallback = (entries): void => {\n const { handleWidth = true, handleHeight = true, onResize } = this.props;\n\n if (!handleWidth && !handleHeight) return;\n\n const notifyResize = createNotifier(onResize, this.setState.bind(this), handleWidth, handleHeight);\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !this.skipOnMount && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n this.skipOnMount = false;\n });\n };\n\n getRenderType = (): string => {\n const { render, children } = this.props;\n if (isFunction(render)) {\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'renderProp';\n }\n\n if (isFunction(children)) {\n return 'childFunction';\n }\n\n if (isValidElement(children)) {\n return 'child';\n }\n\n if (Array.isArray(children)) {\n // DEPRECATED. Wrap children with a single parent\n return 'childArray';\n }\n\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'parent';\n };\n\n render() {\n const { render, children, nodeType: WrapperTag = 'div' } = this.props;\n const { width, height } = this.state;\n\n const childProps = { width, height, targetRef: this.targetRef };\n const renderType = this.getRenderType();\n\n let typedChildren: any;\n\n switch (renderType) {\n case 'renderProp':\n return render && render(childProps);\n case 'childFunction':\n typedChildren = children as (props: ChildFunctionProps) => ReactNode;\n return typedChildren(childProps);\n case 'child':\n // @TODO bug prone logic\n typedChildren = children as ReactElement;\n if (typedChildren.type && typeof typedChildren.type === 'string') {\n // child is a native DOM elements such as div, span etc\n const { targetRef, ...nativeProps } = childProps;\n return cloneElement(typedChildren, nativeProps);\n }\n // class or functional component otherwise\n return cloneElement(typedChildren, childProps);\n case 'childArray':\n typedChildren = children as [ReactElement];\n return typedChildren.map((el: ReactElement) => !!el && cloneElement(el, childProps));\n default:\n return ;\n }\n }\n}\n\nexport default ResizeDetector;\n","import { useLayoutEffect, useEffect, useState, useRef, MutableRefObject } from 'react';\n\nimport { patchResizeHandler, createNotifier, isSSR } from './utils';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nconst useEnhancedEffect = isSSR() ? useEffect : useLayoutEffect;\n\ninterface FunctionProps extends Props {\n targetRef?: ReturnType;\n}\n\nfunction useResizeDetector(props: FunctionProps = {}): UseResizeDetectorReturn {\n const {\n skipOnMount = false,\n refreshMode,\n refreshRate = 1000,\n refreshOptions,\n handleWidth = true,\n handleHeight = true,\n targetRef,\n observerOptions,\n onResize\n } = props;\n\n const skipResize: MutableRefObject = useRef(skipOnMount);\n const localRef = useRef(null);\n const ref = (targetRef ?? localRef) as MutableRefObject;\n const resizeHandler = useRef();\n\n const [size, setSize] = useState({\n width: undefined,\n height: undefined\n });\n\n useEnhancedEffect(() => {\n if (isSSR()) {\n return;\n }\n\n const notifyResize = createNotifier(onResize, setSize, handleWidth, handleHeight);\n\n const resizeCallback: ResizeObserverCallback = entries => {\n if (!handleWidth && !handleHeight) return;\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !skipResize.current && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n skipResize.current = false;\n });\n };\n\n resizeHandler.current = patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions);\n\n const resizeObserver = new window.ResizeObserver(resizeHandler.current as ResizeObserverCallback);\n\n if (ref.current) {\n // Something wrong with typings here...\n resizeObserver.observe(ref.current as any, observerOptions);\n }\n\n return () => {\n resizeObserver.disconnect();\n const patchedResizeHandler = resizeHandler.current as any;\n if (patchedResizeHandler && patchedResizeHandler.cancel) {\n patchedResizeHandler.cancel();\n }\n };\n }, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);\n\n return { ref, ...size };\n}\n\nexport default useResizeDetector;\n\nexport interface UseResizeDetectorReturn extends ReactResizeDetectorDimensions {\n ref: MutableRefObject;\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 _isEqual from \"lodash/isEqual\";\nimport _isNaN from \"lodash/isNaN\";\nimport _max from \"lodash/max\";\nimport _isFunction from \"lodash/isFunction\";\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\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 Area\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { Global } from '../util/Global';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n _inherits(Area, _PureComponent);\n\n var _super = _createSuper(Area);\n\n function Area() {\n var _this;\n\n _classCallCheck(this, Area);\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: true\n };\n _this.id = uniqueId('recharts-area-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(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 (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n\n var _this$props = this.props,\n dot = _this$props.dot,\n points = _this$props.points,\n dataKey = _this$props.dataKey;\n var areaProps = filterProps(this.props);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps), customDotProps), {}, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload\n });\n\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props2 = this.props,\n baseLine = _this$props2.baseLine,\n points = _this$props2.points,\n strokeWidth = _this$props2.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n\n var maxY = _max(points.map(function (entry) {\n return entry.y || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxY = Math.max(_max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n\n var maxX = _max(points.map(function (entry) {\n return entry.x || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxX = Math.max(_max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n type = _this$props4.type,\n stroke = _this$props4.stroke,\n connectNulls = _this$props4.connectNulls,\n isRange = _this$props4.isRange,\n ref = _this$props4.ref,\n others = _objectWithoutProperties(_this$props4, [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"]);\n\n return /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(others, true), {\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n baseLine = _this$props5.baseLine,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;\n\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: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion\n\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n var stepBaseLine;\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (_isNil(baseLine) || _isNaN(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n }\n\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this2.renderClipRect(t))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points) || !_isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n top = _this$props7.top,\n left = _this$props7.left,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-area', 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: Math.floor(height)\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\n };\n }\n\n if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {\n return {\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine\n };\n }\n\n return null;\n }\n }]);\n\n return Area;\n}(PureComponent);\nArea.displayName = 'Area';\nArea.defaultProps = {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\n\nArea.getBaseValue = function (props, xAxis, yAxis) {\n var layout = props.layout,\n baseValue = props.baseValue;\n\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var max = Math.max(domain[0], domain[1]);\n var min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') {\n return min;\n }\n\n if (baseValue === 'dataMax') {\n return max;\n }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n\n return domain[0];\n};\n\nArea.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n bandSize = _ref2.bandSize,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = Area.getBaseValue(props, xAxis, yAxis);\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var originalValue = getValueByDataKey(entry, dataKey);\n var value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = originalValue;\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n var isBreakPoint = _isNil(value[1]) || hasStack && _isNil(originalValue);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isBreakPoint ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: isBreakPoint ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !_isNil(_get(entry, 'value[0]')) && !_isNil(_get(entry, 'y')) ? yAxis.scale(_get(entry, 'value[0]')) : null\n };\n }\n\n return {\n x: !_isNil(_get(entry, 'value[0]')) ? xAxis.scale(_get(entry, 'value[0]')) : null,\n y: entry.y\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n};\n\nArea.renderDotItem = function (option, props) {\n var dotItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: \"recharts-area-dot\"\n }));\n }\n\n return dotItem;\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\";\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\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var CartesianGrid = /*#__PURE__*/function (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n var _super = _createSuper(CartesianGrid);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n value:\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this.props), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(horizontal, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this2.props), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(vertical, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\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 horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n lineItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, filterProps(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n};","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * @fileOverview Area Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var AreaChart = generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","import _debounce from \"lodash/debounce\";\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 _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 Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport classNames from 'classnames';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect } from 'react';\nimport ReactResizeDetector from 'react-resize-detector/build/withPolyfill';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n minWidth = _ref.minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className;\n\n var _useState = useState({\n containerWidth: -1,\n containerHeight: -1\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n\n var containerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return containerRef;\n }, [containerRef]);\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n mounted = _useState4[0],\n setMounted = _useState4[1];\n\n var getContainerSize = function getContainerSize() {\n if (!containerRef.current) {\n return null;\n }\n\n return {\n containerWidth: containerRef.current.clientWidth,\n containerHeight: containerRef.current.clientHeight\n };\n };\n\n var updateDimensionsImmediate = function updateDimensionsImmediate() {\n if (!mounted) {\n return;\n }\n\n var newSize = getContainerSize();\n\n if (newSize) {\n var oldWidth = sizes.containerWidth,\n oldHeight = sizes.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n setSizes({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n var handleResize = debounce > 0 ? _debounce(updateDimensionsImmediate, debounce) : updateDimensionsImmediate;\n\n var renderChart = function renderChart() {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n };\n\n useEffect(function () {\n if (mounted) {\n var size = getContainerSize();\n\n if (size) {\n setSizes(size);\n }\n }\n }, [mounted]);\n useEffect(function () {\n setMounted(true);\n }, []);\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return /*#__PURE__*/React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: handleResize,\n targetRef: containerRef\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, id != null ? {\n id: \"\".concat(id)\n } : {}, {\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: containerRef\n }), renderChart()));\n});","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["componentWillMount","state","this","constructor","getDerivedStateFromProps","props","undefined","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","TypeError","String","__","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","isObject_1","value","type","freeGlobal","global","freeSelf","self","root","Function","now_1","Date","now","reWhitespace","trimmedEndIndex","string","index","test","charAt","reTrimStart","_baseTrim","slice","replace","_Symbol","Symbol","require$$0","objectProto","nativeObjectToString","toString","symToStringTag","toStringTag","_getRawTag","isOwn","tag","unmasked","result","getRawTag","require$$1","objectToString","baseGetTag","isObjectLike","baseTrim","isObject","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","nativeMax","Math","max","nativeMin","min","debounce_1","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","debounce","throttle_1","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","throttle","isFunction","fn","isSSR","window","isDOMElement","element","Element","HTMLDocument","createNotifier","onResize","setSize","handleWidth","handleHeight","_a","width","height","prev","_super","_this","resizeHandler","targetRef","observerOptions","current","getElement","observableElement","resizeObserver","observe","querySelector","targetDomEl","document","currentElement","findDOMNode","getRenderType","parentElement","entries","_b","_c","notifyResize","forEach","entry","contentRect","skipOnMount","render","children","isValidElement","isArray","createRef","createResizeHandler","window.ResizeObserver","ResizeDetector","attachObserver","disconnect","cancelHandler","typedChildren","WrapperTag","childProps","nativeProps","cloneElement","map","el","React","PureComponent","useEnhancedEffect","useEffect","useLayoutEffect","exports","_typeof","obj","iterator","_objectWithoutProperties","source","excluded","key","target","sourceKeys","keys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_extends","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_setPrototypeOf","o","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","getPrototypeOf","Area","_PureComponent","subClass","superClass","_inherits","protoProps","staticProps","_len","_key","concat","isAnimationFinished","id","uniqueId","handleAnimationEnd","onAnimationEnd","_isFunction","handleAnimationStart","onAnimationStart","animationId","prevAnimationId","curPoints","points","curBaseLine","baseLine","prevPoints","prevBaseLine","needClip","clipPathId","isAnimationActive","_this$props","dot","dataKey","areaProps","filterProps","customDotProps","dots","dotProps","r","cx","x","cy","y","payload","renderDotItem","dotsProps","clipPath","Layer","className","alpha","_this$props2","strokeWidth","startX","endX","abs","maxY","_max","isNumber","_isArray","floor","_this$props3","startY","endY","maxX","layout","renderVerticalRect","renderHorizontalRect","_this$props4","stroke","connectNulls","isRange","others","ref","Curve","fill","_this2","_this$props5","animationBegin","animationDuration","animationEasing","_this$state","Animate","begin","duration","isActive","easing","from","to","_ref","stepBaseLine","prevPointsDiffFactor","stepPoints","prevPointIndex","interpolatorX","interpolateNumber","interpolatorY","interpolator","_isNil","_isNaN","_interpolator","renderAreaStatically","renderClipRect","_this$props6","_this$state2","totalLength","_isEqual","renderAreaWithAnimation","_this$props7","hide","top","left","xAxis","yAxis","hasSinglePoint","layerClass","classNames","allowDataOverflow","renderArea","renderDots","LabelList","defaultProps","fillOpacity","xAxisId","yAxisId","legendType","activeDot","Global","getBaseValue","baseValue","numericAxis","domain","scale","getComposedData","_ref2","xAxisTicks","yAxisTicks","bandSize","stackedData","dataStartIndex","displayedData","offset","hasStack","originalValue","getValueByDataKey","isBreakPoint","getCateCoordinateOfLine","axis","ticks","_get","option","Dot","CartesianGrid","lineItem","x1","y1","x2","y2","horizontalPoints","horizontal","items","renderLineItem","verticalPoints","vertical","verticalFill","verticalPointsUpdated","sort","a","unshift","lineWidth","colorIndex","round","horizontalFill","horizontalPointsUpdated","lineHeight","horizontalCoordinatesGenerator","verticalCoordinatesGenerator","chartWidth","chartHeight","renderBackground","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","XAxis","allowDecimals","orientation","mirror","tickCount","padding","right","reversed","allowDuplicatedCategory","YAxis","bottom","AreaChart","generateCategoricalChart","chartName","GraphicalChild","axisComponents","axisType","AxisComp","formatAxisMap","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","len","arr2","ResponsiveContainer","forwardRef","aspect","_ref$width","_ref$height","minWidth","minHeight","maxHeight","_ref$debounce","_useState2","useState","containerWidth","containerHeight","sizes","setSizes","containerRef","useRef","useImperativeHandle","_useState4","mounted","setMounted","getContainerSize","clientWidth","clientHeight","updateDimensionsImmediate","newSize","oldWidth","oldHeight","handleResize","_debounce","size","style","ReactResizeDetector","warn","isPercent","calculatedWidth","calculatedHeight","renderChart","MapShim","Map","getIndex","some","class_1","__entries__","get","set","delete","splice","has","clear","callback","ctx","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","addEventListener","attributes","childList","characterData","subtree","removeEventListener","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","position","getHTMLElementContentRect","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/137.08d76dda.chunk.js","mappings":"4GAOA,SAASA,IAEP,IAAIC,EAAQC,KAAKC,YAAYC,yBAAyBF,KAAKG,MAAOH,KAAKD,OACzD,OAAVA,QAA4BK,IAAVL,GACpBC,KAAKK,SAASN,GAIlB,SAASO,EAA0BC,GAQjCP,KAAKK,SALL,SAAiBG,GACf,IAAIT,EAAQC,KAAKC,YAAYC,yBAAyBK,EAAWC,GACjE,OAAiB,OAAVT,QAA4BK,IAAVL,EAAsBA,EAAQ,MAGnCU,KAAKT,OAG7B,SAASU,EAAoBH,EAAWI,GACtC,IACE,IAAIC,EAAYZ,KAAKG,MACjBK,EAAYR,KAAKD,MACrBC,KAAKG,MAAQI,EACbP,KAAKD,MAAQY,EACbX,KAAKa,6BAA8B,EACnCb,KAAKc,wBAA0Bd,KAAKe,wBAClCH,EACAJ,GARJ,QAWER,KAAKG,MAAQS,EACbZ,KAAKD,MAAQS,GAUjB,SAASQ,EAASC,GAChB,IAAIC,EAAYD,EAAUC,UAE1B,IAAKA,IAAcA,EAAUC,iBAC3B,MAAM,IAAIC,MAAM,sCAGlB,GACgD,oBAAvCH,EAAUf,0BAC4B,oBAAtCgB,EAAUH,wBAEjB,OAAOE,EAMT,IAAII,EAAqB,KACrBC,EAA4B,KAC5BC,EAAsB,KAgB1B,GAf4C,oBAAjCL,EAAUpB,mBACnBuB,EAAqB,qBACmC,oBAAxCH,EAAUM,4BAC1BH,EAAqB,6BAE4B,oBAAxCH,EAAUZ,0BACnBgB,EAA4B,4BACmC,oBAA/CJ,EAAUO,mCAC1BH,EAA4B,oCAEe,oBAAlCJ,EAAUR,oBACnBa,EAAsB,sBACmC,oBAAzCL,EAAUQ,6BAC1BH,EAAsB,8BAGC,OAAvBF,GAC8B,OAA9BC,GACwB,OAAxBC,EACA,CACA,IAAII,EAAgBV,EAAUW,aAAeX,EAAUY,KACnDC,EAC4C,oBAAvCb,EAAUf,yBACb,6BACA,4BAEN,MAAMkB,MACJ,2FACEO,EACA,SACAG,EACA,uDACwB,OAAvBT,EAA8B,OAASA,EAAqB,KAC9B,OAA9BC,EACG,OAASA,EACT,KACqB,OAAxBC,EAA+B,OAASA,EAAsB,IATjE,wIA0BJ,GARkD,oBAAvCN,EAAUf,2BACnBgB,EAAUpB,mBAAqBA,EAC/BoB,EAAUZ,0BAA4BA,GAMS,oBAAtCY,EAAUH,wBAAwC,CAC3D,GAA4C,oBAAjCG,EAAUa,mBACnB,MAAM,IAAIX,MACR,qHAIJF,EAAUR,oBAAsBA,EAEhC,IAAIqB,EAAqBb,EAAUa,mBAEnCb,EAAUa,mBAAqB,SAC7BnB,EACAJ,EACAwB,GAUA,IAAIC,EAAWjC,KAAKa,4BAChBb,KAAKc,wBACLkB,EAEJD,EAAmBG,KAAKlC,KAAMY,EAAWJ,EAAWyB,IAIxD,OAAOhB,E,8CA7GTnB,EAAmBqC,8BAA+B,EAClD7B,EAA0B6B,8BAA+B,EACzDzB,EAAoByB,8BAA+B,G,qbC/B/CC,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOrB,UAAU0B,eAAeV,KAAKI,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,KACzFP,EAAcC,EAAGC,IAGrB,SAASO,EAAUR,EAAGC,GACzB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIQ,UAAU,uBAAyBC,OAAOT,GAAK,iCAE7D,SAASU,IAAOhD,KAAKC,YAAcoC,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEnB,UAAkB,OAANoB,EAAaC,OAAOU,OAAOX,IAAMU,EAAG9B,UAAYoB,EAAEpB,UAAW,IAAI8B,GAG5E,IAAIE,EAAW,WAQlB,OAPAA,EAAWX,OAAOY,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIX,KADTU,EAAIG,UAAUF,GACOf,OAAOrB,UAAU0B,eAAeV,KAAKmB,EAAGV,KAAIS,EAAET,GAAKU,EAAEV,IAE9E,OAAOS,GAEJF,EAASQ,MAAM1D,KAAMwD,YAGzB,SAASG,EAAON,EAAGO,GACtB,IAAIR,EAAI,GACR,IAAK,IAAIT,KAAKU,EAAOd,OAAOrB,UAAU0B,eAAeV,KAAKmB,EAAGV,IAAMiB,EAAEC,QAAQlB,GAAK,IAC9ES,EAAET,GAAKU,EAAEV,IACb,GAAS,MAALU,GAAqD,oBAAjCd,OAAOuB,sBACtB,KAAIR,EAAI,EAAb,IAAgBX,EAAIJ,OAAOuB,sBAAsBT,GAAIC,EAAIX,EAAEc,OAAQH,IAC3DM,EAAEC,QAAQlB,EAAEW,IAAM,GAAKf,OAAOrB,UAAU6C,qBAAqB7B,KAAKmB,EAAGV,EAAEW,MACvEF,EAAET,EAAEW,IAAMD,EAAEV,EAAEW,KAE1B,OAAOF,EACX,mJ,ICtBAY,EALA,SAAkBC,GAChB,IAAIC,SAAcD,EAClB,OAAgB,MAATA,IAA0B,UAARC,GAA4B,YAARA,IC3B3CC,ECC8B,iBAAVC,GAAsBA,GAAUA,EAAO7B,SAAWA,QAAU6B,EDEhFC,EAA0B,iBAARC,MAAoBA,MAAQA,KAAK/B,SAAWA,QAAU+B,KAGxEC,EAAOJ,GAAcE,GAAYG,SAAS,cAATA,GENjCD,EFQaA,EEcjBE,EAJU,WACR,OAAOF,EAAKG,KAAKC,OClBfC,EAAe,K,ICDfC,EDWJ,SAAyBC,GAGvB,IAFA,IAAIC,EAAQD,EAAOrB,OAEZsB,KAAWH,EAAaI,KAAKF,EAAOG,OAAOF,MAClD,OAAOA,GCZLG,EAAc,O,IAelBC,EANA,SAAkBL,GAChB,OAAOA,EACHA,EAAOM,MAAM,EAAGP,EAAgBC,GAAU,GAAGO,QAAQH,EAAa,IAClEJ,GCVNQ,ELGiBf,EKLCgB,OCHdA,EAASC,EAGTC,EAAclD,OAAOrB,UAGrB0B,EAAiB6C,EAAY7C,eAO7B8C,EAAuBD,EAAYE,SAGnCC,EAAiBL,EAASA,EAAOM,iBAAczF,E,IA6BnD0F,EApBA,SAAmB7B,GACjB,IAAI8B,EAAQnD,EAAeV,KAAK+B,EAAO2B,GACnCI,EAAM/B,EAAM2B,GAEhB,IACE3B,EAAM2B,QAAkBxF,EACxB,IAAI6F,GAAW,EACf,MAAOrC,IAET,IAAIsC,EAASR,EAAqBxD,KAAK+B,GAQvC,OAPIgC,IACEF,EACF9B,EAAM2B,GAAkBI,SAEjB/B,EAAM2B,IAGVM,GClCLR,EAPcnD,OAAOrB,UAOcyE,S,ICPnCQ,EAAYC,EACZC,EDeJ,SAAwBpC,GACtB,OAAOyB,EAAqBxD,KAAK+B,ICT/B2B,EATSJ,IASwBK,iBAAczF,E,ICT/CkG,EDkBJ,SAAoBrC,GAClB,OAAa,MAATA,OACe7D,IAAV6D,EAdQ,qBADL,gBAiBJ2B,GAAkBA,KAAkBrD,OAAO0B,GAC/CkC,EAAUlC,GACVoC,EAAepC,ICvBjBsC,ECuBJ,SAAsBtC,GACpB,OAAgB,MAATA,GAAiC,iBAATA,G,ICzB7BuC,EAAWhB,EACXiB,EAAWL,EACXM,EFqBJ,SAAkBzC,GAChB,MAAuB,iBAATA,GACXsC,EAAatC,IArBF,mBAqBYqC,EAAWrC,IEjBnC0C,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,S,ICjBfN,EAAWjB,EACXb,EAAMyB,EACNY,EDwCJ,SAAkB/C,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIyC,EAASzC,GACX,OA1CM,IA4CR,GAAIwC,EAASxC,GAAQ,CACnB,IAAIgD,EAAgC,mBAAjBhD,EAAMiD,QAAwBjD,EAAMiD,UAAYjD,EACnEA,EAAQwC,EAASQ,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAAThD,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQuC,EAASvC,GACjB,IAAIkD,EAAWP,EAAW5B,KAAKf,GAC/B,OAAQkD,GAAYN,EAAU7B,KAAKf,GAC/B6C,EAAa7C,EAAMmB,MAAM,GAAI+B,EAAW,EAAI,GAC3CR,EAAW3B,KAAKf,GAvDb,KAuD6BA,GCpDnCmD,EAAYC,KAAKC,IACjBC,EAAYF,KAAKG,I,IAqLrBC,EA7HA,SAAkBC,EAAMC,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACA7B,EACA8B,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARX,EACT,MAAM,IAAI5E,UAzEQ,uBAmFpB,SAASwF,EAAWC,GAClB,IAAIC,EAAOX,EACPY,EAAUX,EAKd,OAHAD,EAAWC,OAAW1H,EACtB8H,EAAiBK,EACjBrC,EAASwB,EAAKhE,MAAM+E,EAASD,GAI/B,SAASE,EAAYH,GAMnB,OAJAL,EAAiBK,EAEjBP,EAAUW,WAAWC,EAAcjB,GAE5BQ,EAAUG,EAAWC,GAAQrC,EAatC,SAAS2C,EAAaN,GACpB,IAAIO,EAAoBP,EAAON,EAM/B,YAAyB7H,IAAjB6H,GAA+Ba,GAAqBnB,GACzDmB,EAAoB,GAAOV,GANJG,EAAOL,GAM8BH,EAGjE,SAASa,IACP,IAAIL,EAAO5D,IACX,GAAIkE,EAAaN,GACf,OAAOQ,EAAaR,GAGtBP,EAAUW,WAAWC,EA3BvB,SAAuBL,GACrB,IAEIS,EAAcrB,GAFMY,EAAON,GAI/B,OAAOG,EACHb,EAAUyB,EAAajB,GAJDQ,EAAOL,IAK7Bc,EAoB+BC,CAAcV,IAGnD,SAASQ,EAAaR,GAKpB,OAJAP,OAAU5H,EAINiI,GAAYR,EACPS,EAAWC,IAEpBV,EAAWC,OAAW1H,EACf8F,GAeT,SAASgD,IACP,IAAIX,EAAO5D,IACPwE,EAAaN,EAAaN,GAM9B,GAJAV,EAAWrE,UACXsE,EAAW9H,KACXiI,EAAeM,EAEXY,EAAY,CACd,QAAgB/I,IAAZ4H,EACF,OAAOU,EAAYT,GAErB,GAAIG,EAIF,OAFAgB,aAAapB,GACbA,EAAUW,WAAWC,EAAcjB,GAC5BW,EAAWL,GAMtB,YAHgB7H,IAAZ4H,IACFA,EAAUW,WAAWC,EAAcjB,IAE9BzB,EAIT,OA3GAyB,EAAOX,EAASW,IAAS,EACrBlB,EAASmB,KACXO,IAAYP,EAAQO,QAEpBJ,GADAK,EAAS,YAAaR,GACHR,EAAUJ,EAASY,EAAQG,UAAY,EAAGJ,GAAQI,EACrEM,EAAW,aAAcT,IAAYA,EAAQS,SAAWA,GAoG1Da,EAAUG,OApCV,gBACkBjJ,IAAZ4H,GACFoB,aAAapB,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAU5H,GAgCjD8I,EAAUI,MA7BV,WACE,YAAmBlJ,IAAZ4H,EAAwB9B,EAAS6C,EAAapE,MA6BhDuE,GC3LLK,EAAW/D,EACXiB,EAAWL,E,IAmEfoD,EAlBA,SAAkB9B,EAAMC,EAAMC,GAC5B,IAAIO,GAAU,EACVE,GAAW,EAEf,GAAmB,mBAARX,EACT,MAAM,IAAI5E,UAnDQ,uBAyDpB,OAJI2D,EAASmB,KACXO,EAAU,YAAaP,IAAYA,EAAQO,QAAUA,EACrDE,EAAW,aAAcT,IAAYA,EAAQS,SAAWA,GAEnDkB,EAAS7B,EAAMC,EAAM,CAC1B,QAAWQ,EACX,QAAWR,EACX,SAAYU,KCzDHoB,GAAqB,SAChCC,EACAC,EACAC,EACAC,GAEA,OAAQF,GACN,IAAK,WACH,OAAOJ,EAASG,EAAgBE,EAAaC,GAC/C,IAAK,WACH,OAAOC,EAASJ,EAAgBE,EAAaC,GAC/C,QACE,OAAOH,IAIAK,GAAa,SAACC,GAAqB,MAAc,oBAAPA,GAE1CC,GAAQ,WAAe,MAAkB,qBAAXC,QAE9BC,GAAe,SAACC,GAA0B,OAAAA,aAAmBC,SAAWD,aAAmBE,cAE3FC,GACX,SACEC,EACAC,EACAC,EACAC,GAEF,gBAACC,G,IAAEC,EAAK,QAAEC,EAAM,SACdL,GAAQ,SAAAM,GACN,OAAIA,EAAKF,QAAUA,GAASE,EAAKD,SAAWA,GAKvCC,EAAKF,QAAUA,IAAUF,GAAkBI,EAAKD,SAAWA,IAAWJ,EAHlEK,GAQLP,GAAYT,GAAWS,IACzBA,EAASK,EAAOC,GAGX,CAAED,MAAK,EAAEC,OAAM,SAEzB,eC4DD,WAAY3K,GAAZ,MACE6K,EAAAA,KAAAA,KAAM7K,IAAM,KAqCd8K,EAAAA,cAAgB,WACVA,EAAKC,eAAiBD,EAAKC,cAAc7B,SAE3C4B,EAAKC,cAAc7B,SACnB4B,EAAKC,cAAgB,OAIzBD,EAAAA,eAAiB,WACT,MAAiCA,EAAK9K,MAApCgL,EAAS,YAAEC,EAAe,kBAElC,IAAInB,KAAJ,CAIIkB,GAAaA,EAAUE,UACzBJ,EAAKE,UAAUE,QAAUF,EAAUE,SAGrC,IAAMjB,EAAUa,EAAKK,aAChBlB,IAKDa,EAAKM,mBAAqBN,EAAKM,oBAAsBnB,IAKzDa,EAAKM,kBAAoBnB,EACzBa,EAAKO,eAAeC,QAAQrB,EAASgB,OAGvCH,EAAAA,WAAa,WACL,MAAiCA,EAAK9K,MAApCuL,EAAa,gBAAEC,EAAW,cAElC,GAAI1B,KAAS,OAAO,KAGpB,GAAIyB,EAAe,OAAOE,SAASF,cAAcA,GAEjD,GAAIC,GAAexB,GAAawB,GAAc,OAAOA,EAErD,GAAIV,EAAKE,WAAahB,GAAac,EAAKE,UAAUE,SAAU,OAAOJ,EAAKE,UAAUE,QAIlF,IAAMQ,EAAiBC,EAAAA,YAAYb,GAEnC,IAAKY,EAAgB,OAAO,KAG5B,OADmBZ,EAAKc,iBAEtB,IAAK,aAEL,IAAK,gBAEL,IAAK,QAEL,IAAK,aACH,OAAOF,EACT,QACE,OAAOA,EAAeG,gBAI5Bf,EAAAA,oBAA8C,SAACgB,GACvC,MAAwDhB,EAAK9K,MAA3D+L,EAAAA,EAAAA,YAAAxB,OAAW,IAAG,GAAIwB,EAAEC,EAAAA,EAAAA,aAAAxB,OAAY,IAAG,GAAIwB,EAAE3B,EAAQ,WAEzD,GAAKE,GAAgBC,EAArB,CAEA,IAAMyB,EAAe7B,GAAeC,EAAUS,EAAK5K,SAASI,KAAKwK,GAAOP,EAAaC,GAErFsB,EAAQI,SAAQ,SAAAC,GACR,MAAqBA,GAASA,EAAMC,aAAgB,GAAlD1B,EAAK,QAAEC,EAAM,UAEEG,EAAKuB,cAAgBvC,MAE1CmC,EAAa,CAAEvB,MAAK,EAAEC,OAAM,IAG9BG,EAAKuB,aAAc,OAIvBvB,EAAAA,cAAgB,WACR,MAAuBA,EAAK9K,MAA1BsM,EAAM,SAAEC,EAAQ,WACxB,OAAI3C,GAAW0C,GAEN,aAGL1C,GAAW2C,GACN,gBAGLC,EAAAA,eAAeD,GACV,QAGLhK,MAAMkK,QAAQF,GAET,aAIF,UA9IC,IAAAF,EAAiErM,EAAK,YAAzDwJ,EAAoDxJ,EAAK,YAA5CyK,EAAuCzK,EAAK,YAA5CyJ,OAAW,IAAG,MAAIgB,EAAEf,EAAmB1J,EAAK,eAW9E,OATA8K,EAAKlL,MAAQ,CACX8K,WAAOzK,EACP0K,YAAQ1K,GAGV6K,EAAKuB,YAAcA,EACnBvB,EAAKE,UAAY0B,EAAAA,YACjB5B,EAAKM,kBAAoB,KAErBtB,OAIJgB,EAAKC,cAAgBzB,GAAmBwB,EAAK6B,oBAAqBnD,EAAaC,EAAaC,GAC5FoB,EAAKO,eAAiB,IAAIuB,EAAAA,QAAsB9B,EAAKC,gB,EAiKzD,OA7LyErI,EAAAA,EAAAA,GA+BvEmK,EAAAA,UAAAA,kBAAAA,WACEhN,KAAKiN,kBAGPD,EAAAA,UAAAA,mBAAAA,WACEhN,KAAKiN,kBAGPD,EAAAA,UAAAA,qBAAAA,WACM/C,OAGJjK,KAAKwL,eAAe0B,aACpBlN,KAAKmN,kBAiHPH,EAAAA,UAAAA,OAAAA,WACQ,IAMFI,EANE,EAAqDpN,KAAKG,MAAxDsM,EAAM,SAAEC,EAAQ,WAAER,EAAAA,EAAAA,SAAUmB,OAAU,IAAG,QAAKnB,EAChD,EAAoBlM,KAAKD,MAEzBuN,EAAa,CAAEzC,MAFR,QAEeC,OAFP,SAEeK,UAAWnL,KAAKmL,WAKpD,OAJmBnL,KAAK+L,iBAKtB,IAAK,aACH,OAAOU,GAAUA,EAAOa,GAC1B,IAAK,gBAEH,OADAF,EAAgBV,GACKY,GACvB,IAAK,QAGH,IADAF,EAAgBV,GACExI,MAAsC,kBAAvBkJ,EAAclJ,KAAmB,CAE/C,IAAKqJ,EAAW,EAAKD,EAAhC,eACN,OAAOE,EAAAA,aAAaJ,EAAeG,GAGrC,OAAOC,EAAAA,aAAaJ,EAAeE,GACrC,IAAK,aAEH,OADAF,EAAgBV,GACKe,KAAI,SAACC,GAAqB,QAAEA,GAAMF,EAAAA,aAAaE,EAAIJ,MAC1E,QACE,OAAOK,EAAAA,cAACN,EAAU,QAG1B,EDhPG,CCmDsEO,EAAAA,eCnGzE,IAAMC,GAAoB5D,KAAU6D,EAAAA,UAAYC,EAAAA,gBAsEhDC,EAAAA,GAAAA,I,wUC5EA,SAASC,EAAQC,GAAmV,OAAtOD,EAArD,oBAAX1I,QAAoD,kBAApBA,OAAO4I,SAAmC,SAAiBD,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX3I,QAAyB2I,EAAIjO,cAAgBsF,QAAU2I,IAAQ3I,OAAOrE,UAAY,gBAAkBgN,GAAiBD,EAAQC,GAUnX,SAASE,EAAyBC,EAAQC,GAAY,GAAc,MAAVD,EAAgB,MAAO,GAAI,IAAkEE,EAAKjL,EAAnEkL,EAEzF,SAAuCH,EAAQC,GAAY,GAAc,MAAVD,EAAgB,MAAO,GAAI,IAA2DE,EAAKjL,EAA5DkL,EAAS,GAAQC,EAAalM,OAAOmM,KAAKL,GAAqB,IAAK/K,EAAI,EAAGA,EAAImL,EAAWhL,OAAQH,IAAOiL,EAAME,EAAWnL,GAAQgL,EAASzK,QAAQ0K,IAAQ,IAAaC,EAAOD,GAAOF,EAAOE,IAAQ,OAAOC,EAFxMG,CAA8BN,EAAQC,GAAuB,GAAI/L,OAAOuB,sBAAuB,CAAE,IAAI8K,EAAmBrM,OAAOuB,sBAAsBuK,GAAS,IAAK/K,EAAI,EAAGA,EAAIsL,EAAiBnL,OAAQH,IAAOiL,EAAMK,EAAiBtL,GAAQgL,EAASzK,QAAQ0K,IAAQ,GAAkBhM,OAAOrB,UAAU6C,qBAAqB7B,KAAKmM,EAAQE,KAAgBC,EAAOD,GAAOF,EAAOE,IAAU,OAAOC,EAIne,SAASK,IAA2Q,OAA9PA,EAAWtM,OAAOY,QAAU,SAAUqL,GAAU,IAAK,IAAIlL,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI+K,EAAS7K,UAAUF,GAAI,IAAK,IAAIiL,KAAOF,EAAc9L,OAAOrB,UAAU0B,eAAeV,KAAKmM,EAAQE,KAAQC,EAAOD,GAAOF,EAAOE,IAAY,OAAOC,GAAkBK,EAASnL,MAAM1D,KAAMwD,WAEhT,SAASsL,EAAQC,EAAQC,GAAkB,IAAIN,EAAOnM,OAAOmM,KAAKK,GAAS,GAAIxM,OAAOuB,sBAAuB,CAAE,IAAImL,EAAU1M,OAAOuB,sBAAsBiL,GAAaC,IAAgBC,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5M,OAAO6M,yBAAyBL,EAAQI,GAAKE,eAAgBX,EAAKY,KAAK5L,MAAMgL,EAAMO,GAAY,OAAOP,EAE9U,SAASa,EAAcf,GAAU,IAAK,IAAIlL,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI+K,EAAyB,MAAhB7K,UAAUF,GAAaE,UAAUF,GAAK,GAAQA,EAAI,EAAKwL,EAAQvM,OAAO8L,IAAS,GAAMhC,SAAQ,SAAUkC,GAAOiB,EAAgBhB,EAAQD,EAAKF,EAAOE,OAAsBhM,OAAOkN,0BAA6BlN,OAAOmN,iBAAiBlB,EAAQjM,OAAOkN,0BAA0BpB,IAAmBS,EAAQvM,OAAO8L,IAAShC,SAAQ,SAAUkC,GAAOhM,OAAOoN,eAAenB,EAAQD,EAAKhM,OAAO6M,yBAAyBf,EAAQE,OAAe,OAAOC,EAE7gB,SAASgB,EAAgBtB,EAAKK,EAAKtK,GAAiK,OAApJsK,KAAOL,EAAO3L,OAAOoN,eAAezB,EAAKK,EAAK,CAAEtK,MAAOA,EAAOoL,YAAY,EAAMO,cAAc,EAAMC,UAAU,IAAkB3B,EAAIK,GAAOtK,EAAgBiK,EAE3M,SAAS4B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIlN,UAAU,qCAEhH,SAASmN,EAAkBzB,EAAQrO,GAAS,IAAK,IAAImD,EAAI,EAAGA,EAAInD,EAAMsD,OAAQH,IAAK,CAAE,IAAI4M,EAAa/P,EAAMmD,GAAI4M,EAAWb,WAAaa,EAAWb,aAAc,EAAOa,EAAWN,cAAe,EAAU,UAAWM,IAAYA,EAAWL,UAAW,GAAMtN,OAAOoN,eAAenB,EAAQ0B,EAAW3B,IAAK2B,IAM7S,SAASC,EAAgBC,EAAGzN,GAA+G,OAA1GwN,EAAkB5N,OAAOC,gBAAkB,SAAyB4N,EAAGzN,GAAsB,OAAjByN,EAAE3N,UAAYE,EAAUyN,GAAaD,EAAgBC,EAAGzN,GAErK,SAAS0N,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ1P,UAAUgG,QAAQhF,KAAKsO,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOhN,GAAK,OAAO,GAN9PiN,GAA6B,OAAO,WAAkC,IAAsC3K,EAAlC4K,EAAQC,EAAgBT,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYD,EAAgB/Q,MAAMC,YAAaiG,EAASsK,QAAQC,UAAUK,EAAOtN,UAAWwN,QAAqB9K,EAAS4K,EAAMpN,MAAM1D,KAAMwD,WAAc,OAAOyN,EAA2BjR,KAAMkG,IAE5Z,SAAS+K,EAA2B3M,EAAMpC,GAAQ,OAAIA,GAA2B,WAAlB+L,EAAQ/L,IAAsC,oBAATA,EAEpG,SAAgCoC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI4M,eAAe,6DAAgE,OAAO5M,EAFb6M,CAAuB7M,GAAtCpC,EAMnI,SAAS6O,EAAgBX,GAAwJ,OAAnJW,EAAkBxO,OAAOC,eAAiBD,OAAO6O,eAAiB,SAAyBhB,GAAK,OAAOA,EAAE3N,WAAaF,OAAO6O,eAAehB,IAAcW,EAAgBX,GAgBjM,IAAIiB,EAAoB,SAAUC,IA5BzC,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI1O,UAAU,sDAAyDyO,EAASrQ,UAAYqB,OAAOU,OAAOuO,GAAcA,EAAWtQ,UAAW,CAAEjB,YAAa,CAAEgE,MAAOsN,EAAU1B,UAAU,EAAMD,cAAc,KAAe4B,GAAYrB,EAAgBoB,EAAUC,GA6BjXC,CAAUJ,EAAMC,GAEhB,IAjCoBtB,EAAa0B,EAAYC,EAiCzC3G,EAASqF,EAAagB,GAE1B,SAASA,IACP,IAAIpG,EAEJ6E,EAAgB9P,KAAMqR,GAEtB,IAAK,IAAIO,EAAOpO,UAAUC,OAAQ+E,EAAO,IAAI9F,MAAMkP,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ErJ,EAAKqJ,GAAQrO,UAAUqO,GAiCzB,OA9BA5G,EAAQD,EAAO9I,KAAKwB,MAAMsH,EAAQ,CAAChL,MAAM8R,OAAOtJ,KAC1CzI,MAAQ,CACZgS,qBAAqB,GAEvB9G,EAAM+G,IAAKC,EAAAA,EAAAA,IAAS,kBAEpBhH,EAAMiH,mBAAqB,WACzB,IAAIC,EAAiBlH,EAAM9K,MAAMgS,eAEjClH,EAAM5K,SAAS,CACb0R,qBAAqB,IAGnBK,IAAYD,IACdA,KAIJlH,EAAMoH,qBAAuB,WAC3B,IAAIC,EAAmBrH,EAAM9K,MAAMmS,iBAEnCrH,EAAM5K,SAAS,CACb0R,qBAAqB,IAGnBK,IAAYE,IACdA,KAIGrH,EAuUT,OAjZoB+E,EA6EPqB,EA7EgCM,EAyXzC,CAAC,CACHpD,IAAK,2BACLtK,MAAO,SAAkC1D,EAAWC,GAClD,OAAID,EAAUgS,cAAgB/R,EAAUgS,gBAC/B,CACLA,gBAAiBjS,EAAUgS,YAC3BE,UAAWlS,EAAUmS,OACrBC,YAAapS,EAAUqS,SACvBC,WAAYrS,EAAUiS,UACtBK,aAActS,EAAUmS,aAIxBpS,EAAUmS,SAAWlS,EAAUiS,WAAalS,EAAUqS,WAAapS,EAAUmS,YACxE,CACLF,UAAWlS,EAAUmS,OACrBC,YAAapS,EAAUqS,UAIpB,SA7YsBlB,EA6Ed,CAAC,CAClBnD,IAAK,aACLtK,MAAO,SAAoB8O,EAAUC,GACnC,IAAIC,EAAoBjT,KAAKG,MAAM8S,kBAC/BlB,EAAsB/R,KAAKD,MAAMgS,oBAErC,GAAIkB,IAAsBlB,EACxB,OAAO,KAGT,IAAImB,EAAclT,KAAKG,MACnBgT,EAAMD,EAAYC,IAClBT,EAASQ,EAAYR,OACrBU,EAAUF,EAAYE,QACtBC,GAAYC,EAAAA,EAAAA,IAAYtT,KAAKG,OAC7BoT,GAAiBD,EAAAA,EAAAA,IAAYH,GAAK,GAClCK,EAAOd,EAAOjF,KAAI,SAAUnB,EAAOhJ,GACrC,IAAImQ,EAAWlE,EAAcA,EAAcA,EAAc,CACvDhB,IAAK,OAAOuD,OAAOxO,GACnBoQ,EAAG,GACFL,GAAYE,GAAiB,GAAI,CAClCH,QAASA,EACTO,GAAIrH,EAAMsH,EACVC,GAAIvH,EAAMwH,EACV/O,MAAOzB,EACPW,MAAOqI,EAAMrI,MACb8P,QAASzH,EAAMyH,UAGjB,OAAO1C,EAAK2C,cAAcb,EAAKM,MAE7BQ,EAAY,CACdC,SAAUnB,EAAW,iBAAiBjB,OAAOkB,EAAY,KAAO,MAElE,OAAoBrF,EAAAA,cAAoBwG,EAAAA,EAAOtF,EAAS,CACtDuF,UAAW,sBACVH,GAAYT,KAEhB,CACDjF,IAAK,uBACLtK,MAAO,SAA8BoQ,GACnC,IAAIC,EAAetU,KAAKG,MACpByS,EAAW0B,EAAa1B,SACxBF,EAAS4B,EAAa5B,OACtB6B,EAAcD,EAAaC,YAC3BC,EAAS9B,EAAO,GAAGkB,EACnBa,EAAO/B,EAAOA,EAAOjP,OAAS,GAAGmQ,EACjC/I,EAAQwJ,EAAQhN,KAAKqN,IAAIF,EAASC,GAElCE,EAAOC,IAAKlC,EAAOjF,KAAI,SAAUnB,GACnC,OAAOA,EAAMwH,GAAK,MAWpB,OARIe,EAAAA,EAAAA,IAASjC,IAAiC,kBAAbA,EAC/B+B,EAAOtN,KAAKC,IAAIsL,EAAU+B,GACjB/B,GAAYkC,IAASlC,IAAaA,EAASnP,SACpDkR,EAAOtN,KAAKC,IAAIsN,IAAKhC,EAASnF,KAAI,SAAUnB,GAC1C,OAAOA,EAAMwH,GAAK,MACfa,KAGHE,EAAAA,EAAAA,IAASF,GACShH,EAAAA,cAAoB,OAAQ,CAC9CiG,EAAGY,EAASC,EAAOD,EAASA,EAAS3J,EACrCiJ,EAAG,EACHjJ,MAAOA,EACPC,OAAQzD,KAAK0N,MAAMJ,GAAQJ,EAAcxN,SAAS,GAAG+K,OAAOyC,GAAc,IAAM,MAI7E,OAER,CACDhG,IAAK,qBACLtK,MAAO,SAA4BoQ,GACjC,IAAIW,EAAehV,KAAKG,MACpByS,EAAWoC,EAAapC,SACxBF,EAASsC,EAAatC,OACtB6B,EAAcS,EAAaT,YAC3BU,EAASvC,EAAO,GAAGoB,EACnBoB,EAAOxC,EAAOA,EAAOjP,OAAS,GAAGqQ,EACjChJ,EAASuJ,EAAQhN,KAAKqN,IAAIO,EAASC,GAEnCC,EAAOP,IAAKlC,EAAOjF,KAAI,SAAUnB,GACnC,OAAOA,EAAMsH,GAAK,MAWpB,OARIiB,EAAAA,EAAAA,IAASjC,IAAiC,kBAAbA,EAC/BuC,EAAO9N,KAAKC,IAAIsL,EAAUuC,GACjBvC,GAAYkC,IAASlC,IAAaA,EAASnP,SACpD0R,EAAO9N,KAAKC,IAAIsN,IAAKhC,EAASnF,KAAI,SAAUnB,GAC1C,OAAOA,EAAMsH,GAAK,MACfuB,KAGHN,EAAAA,EAAAA,IAASM,GACSxH,EAAAA,cAAoB,OAAQ,CAC9CiG,EAAG,EACHE,EAAGmB,EAASC,EAAOD,EAASA,EAASnK,EACrCD,MAAOsK,GAAQZ,EAAcxN,SAAS,GAAG+K,OAAOyC,GAAc,IAAM,GACpEzJ,OAAQzD,KAAK0N,MAAMjK,KAIhB,OAER,CACDyD,IAAK,iBACLtK,MAAO,SAAwBoQ,GAG7B,MAAe,aAFFrU,KAAKG,MAAMiV,OAGfpV,KAAKqV,mBAAmBhB,GAG1BrU,KAAKsV,qBAAqBjB,KAElC,CACD9F,IAAK,uBACLtK,MAAO,SAA8ByO,EAAQE,EAAUG,EAAUC,GAE/D,IAAIuC,EAAevV,KAAKG,MACpBiV,EAASG,EAAaH,OACtBlR,EAAOqR,EAAarR,KACpBsR,EAASD,EAAaC,OACtBC,EAAeF,EAAaE,aAC5BC,EAAUH,EAAaG,QAEvBC,GADMJ,EAAaK,IACVxH,EAAyBmH,EAAc,CAAC,SAAU,OAAQ,SAAU,eAAgB,UAAW,SAE5G,OAAoB5H,EAAAA,cAAoBwG,EAAAA,EAAO,CAC7CD,SAAUnB,EAAW,iBAAiBjB,OAAOkB,EAAY,KAAO,MAClDrF,EAAAA,cAAoBkI,EAAAA,EAAOhH,EAAS,IAAIyE,EAAAA,EAAAA,IAAYqC,GAAQ,GAAO,CACjFjD,OAAQA,EACR+C,aAAcA,EACdvR,KAAMA,EACN0O,SAAUA,EACVwC,OAAQA,EACRI,OAAQ,OACRpB,UAAW,wBACG,SAAXoB,GAAkC7H,EAAAA,cAAoBkI,EAAAA,EAAOhH,EAAS,IAAIyE,EAAAA,EAAAA,IAAYtT,KAAKG,OAAQ,CACtGiU,UAAW,sBACXgB,OAAQA,EACRlR,KAAMA,EACNuR,aAAcA,EACdK,KAAM,OACNpD,OAAQA,KACM,SAAX8C,GAAqBE,GAAwB/H,EAAAA,cAAoBkI,EAAAA,EAAOhH,EAAS,IAAIyE,EAAAA,EAAAA,IAAYtT,KAAKG,OAAQ,CACjHiU,UAAW,sBACXgB,OAAQA,EACRlR,KAAMA,EACNuR,aAAcA,EACdK,KAAM,OACNpD,OAAQE,QAGX,CACDrE,IAAK,0BACLtK,MAAO,SAAiC8O,EAAUC,GAChD,IAAI+C,EAAS/V,KAETgW,EAAehW,KAAKG,MACpBuS,EAASsD,EAAatD,OACtBE,EAAWoD,EAAapD,SACxBK,EAAoB+C,EAAa/C,kBACjCgD,EAAiBD,EAAaC,eAC9BC,EAAoBF,EAAaE,kBACjCC,EAAkBH,EAAaG,gBAC/B5D,EAAcyD,EAAazD,YAC3B6D,EAAcpW,KAAKD,MACnB8S,EAAauD,EAAYvD,WACzBC,EAAesD,EAAYtD,aAE/B,OAAoBnF,EAAAA,cAAoB0I,EAAAA,GAAS,CAC/CC,MAAOL,EACPM,SAAUL,EACVM,SAAUvD,EACVwD,OAAQN,EACRO,KAAM,CACJtT,EAAG,GAELuT,GAAI,CACFvT,EAAG,GAELmL,IAAK,QAAQuD,OAAOS,GACpBJ,eAAgBnS,KAAKkS,mBACrBI,iBAAkBtS,KAAKqS,uBACtB,SAAUuE,GACX,IAAIxT,EAAIwT,EAAKxT,EAEb,GAAIyP,EAAY,CACd,IAiBIgE,EAjBAC,EAAuBjE,EAAWpP,OAASiP,EAAOjP,OAElDsT,EAAarE,EAAOjF,KAAI,SAAUnB,EAAOvH,GAC3C,IAAIiS,EAAiB3P,KAAK0N,MAAMhQ,EAAQ+R,GAExC,GAAIjE,EAAWmE,GAAiB,CAC9B,IAAIjM,EAAO8H,EAAWmE,GAClBC,GAAgBC,EAAAA,EAAAA,IAAkBnM,EAAK6I,EAAGtH,EAAMsH,GAChDuD,GAAgBD,EAAAA,EAAAA,IAAkBnM,EAAK+I,EAAGxH,EAAMwH,GACpD,OAAOvE,EAAcA,EAAc,GAAIjD,GAAQ,GAAI,CACjDsH,EAAGqD,EAAc7T,GACjB0Q,EAAGqD,EAAc/T,KAIrB,OAAOkJ,KA6BT,OAvBEuK,GAFEhC,EAAAA,EAAAA,IAASjC,IAAiC,kBAAbA,GACZsE,EAAAA,EAAAA,IAAkBpE,EAAcF,EACpCwE,CAAahU,GACnBiU,IAAOzE,IAAa0E,IAAO1E,IAChBsE,EAAAA,EAAAA,IAAkBpE,EAAc,EAErCyE,CAAcnU,GAEdwP,EAASnF,KAAI,SAAUnB,EAAOvH,GAC3C,IAAIiS,EAAiB3P,KAAK0N,MAAMhQ,EAAQ+R,GAExC,GAAIhE,EAAakE,GAAiB,CAChC,IAAIjM,EAAO+H,EAAakE,GACpBC,GAAgBC,EAAAA,EAAAA,IAAkBnM,EAAK6I,EAAGtH,EAAMsH,GAChDuD,GAAgBD,EAAAA,EAAAA,IAAkBnM,EAAK+I,EAAGxH,EAAMwH,GACpD,OAAOvE,EAAcA,EAAc,GAAIjD,GAAQ,GAAI,CACjDsH,EAAGqD,EAAc7T,GACjB0Q,EAAGqD,EAAc/T,KAIrB,OAAOkJ,KAIJyJ,EAAOyB,qBAAqBT,EAAYF,EAAc9D,EAAUC,GAGzE,OAAoBrF,EAAAA,cAAoBwG,EAAAA,EAAO,KAAmBxG,EAAAA,cAAoB,OAAQ,KAAmBA,EAAAA,cAAoB,WAAY,CAC/IqE,GAAI,qBAAqBF,OAAOkB,IAC/B+C,EAAO0B,eAAerU,KAAmBuK,EAAAA,cAAoBwG,EAAAA,EAAO,CACrED,SAAU,0BAA0BpC,OAAOkB,EAAY,MACtD+C,EAAOyB,qBAAqB9E,EAAQE,EAAUG,EAAUC,UAG9D,CACDzE,IAAK,aACLtK,MAAO,SAAoB8O,EAAUC,GACnC,IAAI0E,EAAe1X,KAAKG,MACpBuS,EAASgF,EAAahF,OACtBE,EAAW8E,EAAa9E,SACxBK,EAAoByE,EAAazE,kBACjC0E,EAAe3X,KAAKD,MACpB8S,EAAa8E,EAAa9E,WAC1BC,EAAe6E,EAAa7E,aAC5B8E,EAAcD,EAAaC,YAE/B,OAAI3E,GAAqBP,GAAUA,EAAOjP,UAAYoP,GAAc+E,EAAc,IAAMC,IAAShF,EAAYH,KAAYmF,IAAS/E,EAAcF,IACvI5S,KAAK8X,wBAAwB/E,EAAUC,GAGzChT,KAAKwX,qBAAqB9E,EAAQE,EAAUG,EAAUC,KAE9D,CACDzE,IAAK,SACLtK,MAAO,WACL,IAAI8T,EAAe/X,KAAKG,MACpB6X,EAAOD,EAAaC,KACpB7E,EAAM4E,EAAa5E,IACnBT,EAASqF,EAAarF,OACtB0B,EAAY2D,EAAa3D,UACzB6D,EAAMF,EAAaE,IACnBC,EAAOH,EAAaG,KACpBC,EAAQJ,EAAaI,MACrBC,EAAQL,EAAaK,MACrBvN,EAAQkN,EAAalN,MACrBC,EAASiN,EAAajN,OACtBmI,EAAoB8E,EAAa9E,kBACjCjB,EAAK+F,EAAa/F,GAEtB,GAAIgG,IAAStF,IAAWA,EAAOjP,OAC7B,OAAO,KAGT,IAAIsO,EAAsB/R,KAAKD,MAAMgS,oBACjCsG,EAAmC,IAAlB3F,EAAOjP,OACxB6U,EAAaC,IAAW,gBAAiBnE,GACzCrB,EAAWoF,GAASA,EAAMK,mBAAqBJ,GAASA,EAAMI,kBAC9DxF,EAAaqE,IAAOrF,GAAMhS,KAAKgS,GAAKA,EACxC,OAAoBrE,EAAAA,cAAoBwG,EAAAA,EAAO,CAC7CC,UAAWkE,GACVvF,EAAwBpF,EAAAA,cAAoB,OAAQ,KAAmBA,EAAAA,cAAoB,WAAY,CACxGqE,GAAI,YAAYF,OAAOkB,IACTrF,EAAAA,cAAoB,OAAQ,CAC1CiG,EAAGsE,EACHpE,EAAGmE,EACHpN,MAAOA,EACPC,OAAQzD,KAAK0N,MAAMjK,OACd,KAAOuN,EAAyD,KAAxCrY,KAAKyY,WAAW1F,EAAUC,IAAqBG,GAAOkF,IAAmBrY,KAAK0Y,WAAW3F,EAAUC,KAAeC,GAAqBlB,IAAwB4G,EAAAA,EAAAA,mBAA6B3Y,KAAKG,MAAOuS,SAvX/JzC,EAAkBD,EAAY9O,UAAWwQ,GAAiBC,GAAa1B,EAAkBD,EAAa2B,GAiZ3KN,EAnXsB,CAoX7BzD,EAAAA,eACFyD,EAAKzP,YAAc,OACnByP,EAAKuH,aAAe,CAClBpD,OAAQ,UACRM,KAAM,UACN+C,YAAa,GACbC,QAAS,EACTC,QAAS,EACTC,WAAY,OACZvD,cAAc,EAEd/C,OAAQ,GACRS,KAAK,EACL8F,WAAW,EACXjB,MAAM,EACN/E,mBAAoBiG,EAAAA,EAAAA,MACpBjD,eAAgB,EAChBC,kBAAmB,KACnBC,gBAAiB,QAGnB9E,EAAK8H,aAAe,SAAUhZ,EAAOgY,EAAOC,GAC1C,IAAIhD,EAASjV,EAAMiV,OACfgE,EAAYjZ,EAAMiZ,UAEtB,IAAIvE,EAAAA,EAAAA,IAASuE,IAAmC,kBAAdA,EAChC,OAAOA,EAGT,IAAIC,EAAyB,eAAXjE,EAA0BgD,EAAQD,EAChDmB,EAASD,EAAYE,MAAMD,SAE/B,GAAyB,WAArBD,EAAYnV,KAAmB,CACjC,IAAIoD,EAAMD,KAAKC,IAAIgS,EAAO,GAAIA,EAAO,IACjC9R,EAAMH,KAAKG,IAAI8R,EAAO,GAAIA,EAAO,IAErC,MAAkB,YAAdF,EACK5R,EAGS,YAAd4R,GAIG9R,EAAM,EAHJA,EAGcD,KAAKC,IAAID,KAAKG,IAAI8R,EAAO,GAAIA,EAAO,IAAK,GAGlE,MAAkB,YAAdF,EACKE,EAAO,GAGE,YAAdF,EACKE,EAAO,GAGTA,EAAO,IAGhBjI,EAAKmI,gBAAkB,SAAUC,GAC/B,IA6DI7G,EA7DAzS,EAAQsZ,EAAMtZ,MACdgY,EAAQsB,EAAMtB,MACdC,EAAQqB,EAAMrB,MACdsB,EAAaD,EAAMC,WACnBC,EAAaF,EAAME,WACnBC,EAAWH,EAAMG,SACjBxG,EAAUqG,EAAMrG,QAChByG,EAAcJ,EAAMI,YACpBC,EAAiBL,EAAMK,eACvBC,EAAgBN,EAAMM,cACtBC,EAASP,EAAMO,OACf5E,EAASjV,EAAMiV,OACf6E,EAAWJ,GAAeA,EAAYpW,OACtC2V,EAAY/H,EAAK8H,aAAahZ,EAAOgY,EAAOC,GAC5C1C,GAAU,EACVhD,EAASqH,EAActM,KAAI,SAAUnB,EAAOvH,GAC9C,IACId,EADAiW,GAAgBC,EAAAA,EAAAA,IAAkB7N,EAAO8G,GAGzC6G,EACFhW,EAAQ4V,EAAYC,EAAiB/U,IAErCd,EAAQiW,EAEHpF,IAAS7Q,GAGZyR,GAAU,EAFVzR,EAAQ,CAACmV,EAAWnV,IAMxB,IAAImW,EAAe/C,IAAOpT,EAAM,KAAOgW,GAAY5C,IAAO6C,GAE1D,MAAe,eAAX9E,EACK,CACLxB,GAAGyG,EAAAA,EAAAA,IAAwB,CACzBC,KAAMnC,EACNoC,MAAOb,EACPE,SAAUA,EACVtN,MAAOA,EACPvH,MAAOA,IAET+O,EAAGsG,EAAe,KAAOhC,EAAMmB,MAAMtV,EAAM,IAC3CA,MAAOA,EACP8P,QAASzH,GAIN,CACLsH,EAAGwG,EAAe,KAAOjC,EAAMoB,MAAMtV,EAAM,IAC3C6P,GAAGuG,EAAAA,EAAAA,IAAwB,CACzBC,KAAMlC,EACNmC,MAAOZ,EACPC,SAAUA,EACVtN,MAAOA,EACPvH,MAAOA,IAETd,MAAOA,EACP8P,QAASzH,MAyBb,OAnBEsG,EADEqH,GAAYvE,EACHhD,EAAOjF,KAAI,SAAUnB,GAC9B,MAAe,eAAX8I,EACK,CACLxB,EAAGtH,EAAMsH,EACTE,EAAIuD,IAAOmD,IAAKlO,EAAO,cAAiB+K,IAAOmD,IAAKlO,EAAO,MAA+C,KAAvC8L,EAAMmB,MAAMiB,IAAKlO,EAAO,cAIxF,CACLsH,EAAIyD,IAAOmD,IAAKlO,EAAO,aAAsD,KAAvC6L,EAAMoB,MAAMiB,IAAKlO,EAAO,aAC9DwH,EAAGxH,EAAMwH,MAGO,eAAXsB,EACEgD,EAAMmB,MAAMH,GAEZjB,EAAMoB,MAAMH,GAGlB7J,EAAc,CACnBmD,OAAQA,EACRE,SAAUA,EACVwC,OAAQA,EACRM,QAASA,GACRsE,IAGL3I,EAAK2C,cAAgB,SAAUyG,EAAQta,GAarC,OAVkBwN,EAAAA,eAAqB8M,GACd9M,EAAAA,aAAmB8M,EAAQta,GACzCiS,IAAYqI,GACXA,EAAOta,GAEMwN,EAAAA,cAAoB+M,EAAAA,EAAK7L,EAAS,GAAI1O,EAAO,CAClEiU,UAAW,yB,+GC3kBjB,SAASnG,EAAQC,GAAmV,OAAtOD,EAArD,oBAAX1I,QAAoD,kBAApBA,OAAO4I,SAAmC,SAAiBD,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX3I,QAAyB2I,EAAIjO,cAAgBsF,QAAU2I,IAAQ3I,OAAOrE,UAAY,gBAAkBgN,GAAiBD,EAAQC,GAInX,SAASW,IAA2Q,OAA9PA,EAAWtM,OAAOY,QAAU,SAAUqL,GAAU,IAAK,IAAIlL,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI+K,EAAS7K,UAAUF,GAAI,IAAK,IAAIiL,KAAOF,EAAc9L,OAAOrB,UAAU0B,eAAeV,KAAKmM,EAAQE,KAAQC,EAAOD,GAAOF,EAAOE,IAAY,OAAOC,GAAkBK,EAASnL,MAAM1D,KAAMwD,WAEhT,SAAS4K,EAAyBC,EAAQC,GAAY,GAAc,MAAVD,EAAgB,MAAO,GAAI,IAAkEE,EAAKjL,EAAnEkL,EAEzF,SAAuCH,EAAQC,GAAY,GAAc,MAAVD,EAAgB,MAAO,GAAI,IAA2DE,EAAKjL,EAA5DkL,EAAS,GAAQC,EAAalM,OAAOmM,KAAKL,GAAqB,IAAK/K,EAAI,EAAGA,EAAImL,EAAWhL,OAAQH,IAAOiL,EAAME,EAAWnL,GAAQgL,EAASzK,QAAQ0K,IAAQ,IAAaC,EAAOD,GAAOF,EAAOE,IAAQ,OAAOC,EAFxMG,CAA8BN,EAAQC,GAAuB,GAAI/L,OAAOuB,sBAAuB,CAAE,IAAI8K,EAAmBrM,OAAOuB,sBAAsBuK,GAAS,IAAK/K,EAAI,EAAGA,EAAIsL,EAAiBnL,OAAQH,IAAOiL,EAAMK,EAAiBtL,GAAQgL,EAASzK,QAAQ0K,IAAQ,GAAkBhM,OAAOrB,UAAU6C,qBAAqB7B,KAAKmM,EAAQE,KAAgBC,EAAOD,GAAOF,EAAOE,IAAU,OAAOC,EAIne,SAASM,EAAQC,EAAQC,GAAkB,IAAIN,EAAOnM,OAAOmM,KAAKK,GAAS,GAAIxM,OAAOuB,sBAAuB,CAAE,IAAImL,EAAU1M,OAAOuB,sBAAsBiL,GAAaC,IAAgBC,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO5M,OAAO6M,yBAAyBL,EAAQI,GAAKE,eAAgBX,EAAKY,KAAK5L,MAAMgL,EAAMO,GAAY,OAAOP,EAE9U,SAASa,EAAcf,GAAU,IAAK,IAAIlL,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI+K,EAAyB,MAAhB7K,UAAUF,GAAaE,UAAUF,GAAK,GAAQA,EAAI,EAAKwL,EAAQvM,OAAO8L,IAAS,GAAMhC,SAAQ,SAAUkC,GAAOiB,EAAgBhB,EAAQD,EAAKF,EAAOE,OAAsBhM,OAAOkN,0BAA6BlN,OAAOmN,iBAAiBlB,EAAQjM,OAAOkN,0BAA0BpB,IAAmBS,EAAQvM,OAAO8L,IAAShC,SAAQ,SAAUkC,GAAOhM,OAAOoN,eAAenB,EAAQD,EAAKhM,OAAO6M,yBAAyBf,EAAQE,OAAe,OAAOC,EAE7gB,SAASgB,EAAgBtB,EAAKK,EAAKtK,GAAiK,OAApJsK,KAAOL,EAAO3L,OAAOoN,eAAezB,EAAKK,EAAK,CAAEtK,MAAOA,EAAOoL,YAAY,EAAMO,cAAc,EAAMC,UAAU,IAAkB3B,EAAIK,GAAOtK,EAAgBiK,EAE3M,SAAS4B,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIlN,UAAU,qCAEhH,SAASmN,EAAkBzB,EAAQrO,GAAS,IAAK,IAAImD,EAAI,EAAGA,EAAInD,EAAMsD,OAAQH,IAAK,CAAE,IAAI4M,EAAa/P,EAAMmD,GAAI4M,EAAWb,WAAaa,EAAWb,aAAc,EAAOa,EAAWN,cAAe,EAAU,UAAWM,IAAYA,EAAWL,UAAW,GAAMtN,OAAOoN,eAAenB,EAAQ0B,EAAW3B,IAAK2B,IAM7S,SAASC,EAAgBC,EAAGzN,GAA+G,OAA1GwN,EAAkB5N,OAAOC,gBAAkB,SAAyB4N,EAAGzN,GAAsB,OAAjByN,EAAE3N,UAAYE,EAAUyN,GAAaD,EAAgBC,EAAGzN,GAErK,SAAS0N,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQ1P,UAAUgG,QAAQhF,KAAKsO,QAAQC,UAAUG,QAAS,IAAI,iBAAyB,EAAQ,MAAOhN,GAAK,OAAO,GAN9PiN,GAA6B,OAAO,WAAkC,IAAsC3K,EAAlC4K,EAAQC,EAAgBT,GAAkB,GAAIC,EAA2B,CAAE,IAAIS,EAAYD,EAAgB/Q,MAAMC,YAAaiG,EAASsK,QAAQC,UAAUK,EAAOtN,UAAWwN,QAAqB9K,EAAS4K,EAAMpN,MAAM1D,KAAMwD,WAAc,OAAOyN,EAA2BjR,KAAMkG,IAE5Z,SAAS+K,EAA2B3M,EAAMpC,GAAQ,OAAIA,GAA2B,WAAlB+L,EAAQ/L,IAAsC,oBAATA,EAEpG,SAAgCoC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI4M,eAAe,6DAAgE,OAAO5M,EAFb6M,CAAuB7M,GAAtCpC,EAMnI,SAAS6O,EAAgBX,GAAwJ,OAAnJW,EAAkBxO,OAAOC,eAAiBD,OAAO6O,eAAiB,SAAyBhB,GAAK,OAAOA,EAAE3N,WAAaF,OAAO6O,eAAehB,IAAcW,EAAgBX,GAQjM,IAAIuK,EAA6B,SAAUrJ,IApBlD,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI1O,UAAU,sDAAyDyO,EAASrQ,UAAYqB,OAAOU,OAAOuO,GAAcA,EAAWtQ,UAAW,CAAEjB,YAAa,CAAEgE,MAAOsN,EAAU1B,UAAU,EAAMD,cAAc,KAAe4B,GAAYrB,EAAgBoB,EAAUC,GAqBjXC,CAAUkJ,EAAerJ,GAEzB,IAzBoBtB,EAAa0B,EAAYC,EAyBzC3G,EAASqF,EAAasK,GAE1B,SAASA,IAGP,OAFA7K,EAAgB9P,KAAM2a,GAEf3P,EAAOtH,MAAM1D,KAAMwD,WAiS5B,OA/ToBwM,EAiCP2K,EAjCgChJ,EAgSzC,CAAC,CACHpD,IAAK,iBACLtK,MAAO,SAAwBwW,EAAQta,GACrC,IAAIya,EAEJ,GAAkBjN,EAAAA,eAAqB8M,GACrCG,EAAwBjN,EAAAA,aAAmB8M,EAAQta,QAC9C,GAAIiS,IAAYqI,GACrBG,EAAWH,EAAOta,OACb,CACL,IAAI0a,EAAK1a,EAAM0a,GACXC,EAAK3a,EAAM2a,GACXC,EAAK5a,EAAM4a,GACXC,EAAK7a,EAAM6a,GACXzM,EAAMpO,EAAMoO,IACZoH,EAASvH,EAAyBjO,EAAO,CAAC,KAAM,KAAM,KAAM,KAAM,QAEtEya,EAAwBjN,EAAAA,cAAoB,OAAQkB,EAAS,IAAIyE,EAAAA,EAAAA,IAAYqC,GAAS,CACpFkF,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJlF,KAAM,OACNvH,IAAKA,KAIT,OAAOqM,MA3TsBlJ,EAiCL,CAAC,CAC3BnD,IAAK,mBACLtK,MAMA,SAA0BgX,GACxB,IAAIhQ,EAAQjL,KAERkT,EAAclT,KAAKG,MACnByT,EAAIV,EAAYU,EAChB/I,EAAQqI,EAAYrI,MACpBqQ,EAAahI,EAAYgI,WAE7B,IAAKD,IAAqBA,EAAiBxX,OACzC,OAAO,KAGT,IAAI0X,EAAQF,EAAiBxN,KAAI,SAAUnB,EAAOhJ,GAChD,IAAInD,EAAQoP,EAAcA,EAAc,GAAItE,EAAM9K,OAAQ,GAAI,CAC5D0a,GAAIjH,EACJkH,GAAIxO,EACJyO,GAAInH,EAAI/I,EACRmQ,GAAI1O,EACJiC,IAAK,QAAQuD,OAAOxO,GACpByB,MAAOzB,IAGT,OAAOqX,EAAcS,eAAeF,EAAY/a,MAElD,OAAoBwN,EAAAA,cAAoB,IAAK,CAC3CyG,UAAW,sCACV+G,KAQJ,CACD5M,IAAK,iBACLtK,MAAO,SAAwBoX,GAC7B,IAAItF,EAAS/V,KAETsU,EAAetU,KAAKG,MACpB2T,EAAIQ,EAAaR,EACjBhJ,EAASwJ,EAAaxJ,OACtBwQ,EAAWhH,EAAagH,SAE5B,IAAKD,IAAmBA,EAAe5X,OACrC,OAAO,KAGT,IAAI0X,EAAQE,EAAe5N,KAAI,SAAUnB,EAAOhJ,GAC9C,IAAInD,EAAQoP,EAAcA,EAAc,GAAIwG,EAAO5V,OAAQ,GAAI,CAC7D0a,GAAIvO,EACJwO,GAAIhH,EACJiH,GAAIzO,EACJ0O,GAAIlH,EAAIhJ,EACRyD,IAAK,QAAQuD,OAAOxO,GACpByB,MAAOzB,IAGT,OAAOqX,EAAcS,eAAeE,EAAUnb,MAEhD,OAAoBwN,EAAAA,cAAoB,IAAK,CAC3CyG,UAAW,oCACV+G,KAQJ,CACD5M,IAAK,wBACLtK,MAAO,SAA+BoX,GACpC,IAAIE,EAAevb,KAAKG,MAAMob,aAE9B,IAAKA,IAAiBA,EAAa9X,OACjC,OAAO,KAGT,IAAIuR,EAAehV,KAAKG,MACpB0Y,EAAc7D,EAAa6D,YAC3BjF,EAAIoB,EAAapB,EACjBE,EAAIkB,EAAalB,EACjBjJ,EAAQmK,EAAanK,MACrBC,EAASkK,EAAalK,OACtB0Q,EAAwBH,EAAejW,QAAQqW,MAAK,SAAUC,EAAGpZ,GACnE,OAAOoZ,EAAIpZ,KAGTsR,IAAM4H,EAAsB,IAC9BA,EAAsBG,QAAQ,GAGhC,IAAIR,EAAQK,EAAsB/N,KAAI,SAAUnB,EAAOhJ,GACrD,IAAIsY,EAAYJ,EAAsBlY,EAAI,GAAKkY,EAAsBlY,EAAI,GAAKgJ,EAAQsH,EAAI/I,EAAQyB,EAElG,GAAIsP,GAAa,EACf,OAAO,KAGT,IAAIC,EAAavY,EAAIiY,EAAa9X,OAClC,OAAoBkK,EAAAA,cAAoB,OAAQ,CAC9CY,IAAK,SAASuD,OAAOxO,GAErBsQ,EAAGvM,KAAKyU,MAAMxP,EAAQsH,EAAIA,GAC1BE,EAAGA,EACHjJ,MAAO+Q,EACP9Q,OAAQA,EACR0K,OAAQ,OACRM,KAAMyF,EAAaM,GACnBhD,YAAaA,EACbzE,UAAW,kCAGf,OAAoBzG,EAAAA,cAAoB,IAAK,CAC3CyG,UAAW,2CACV+G,KAQJ,CACD5M,IAAK,0BACLtK,MAAO,SAAiCgX,GACtC,IAAIc,EAAiB/b,KAAKG,MAAM4b,eAEhC,IAAKA,IAAmBA,EAAetY,OACrC,OAAO,KAGT,IAAI8R,EAAevV,KAAKG,MACpB0Y,EAActD,EAAasD,YAC3BjF,EAAI2B,EAAa3B,EACjBE,EAAIyB,EAAazB,EACjBjJ,EAAQ0K,EAAa1K,MACrBC,EAASyK,EAAazK,OACtBkR,EAA0Bf,EAAiB7V,QAAQqW,MAAK,SAAUC,EAAGpZ,GACvE,OAAOoZ,EAAIpZ,KAGTwR,IAAMkI,EAAwB,IAChCA,EAAwBL,QAAQ,GAGlC,IAAIR,EAAQa,EAAwBvO,KAAI,SAAUnB,EAAOhJ,GACvD,IAAI2Y,EAAaD,EAAwB1Y,EAAI,GAAK0Y,EAAwB1Y,EAAI,GAAKgJ,EAAQwH,EAAIhJ,EAASwB,EAExG,GAAI2P,GAAc,EAChB,OAAO,KAGT,IAAIJ,EAAavY,EAAIyY,EAAetY,OACpC,OAAoBkK,EAAAA,cAAoB,OAAQ,CAC9CY,IAAK,SAASuD,OAAOxO,GAErBwQ,EAAGzM,KAAKyU,MAAMxP,EAAQwH,EAAIA,GAC1BF,EAAGA,EACH9I,OAAQmR,EACRpR,MAAOA,EACP2K,OAAQ,OACRM,KAAMiG,EAAeF,GACrBhD,YAAaA,EACbzE,UAAW,kCAGf,OAAoBzG,EAAAA,cAAoB,IAAK,CAC3CyG,UAAW,6CACV+G,KAEJ,CACD5M,IAAK,mBACLtK,MAAO,WACL,IAAI6R,EAAO9V,KAAKG,MAAM2V,KAEtB,IAAKA,GAAiB,SAATA,EACX,OAAO,KAGT,IAAIE,EAAehW,KAAKG,MACpB0Y,EAAc7C,EAAa6C,YAC3BjF,EAAIoC,EAAapC,EACjBE,EAAIkC,EAAalC,EACjBjJ,EAAQmL,EAAanL,MACrBC,EAASkL,EAAalL,OAC1B,OAAoB6C,EAAAA,cAAoB,OAAQ,CAC9CiG,EAAGA,EACHE,EAAGA,EACHjJ,MAAOA,EACPC,OAAQA,EACR0K,OAAQ,OACRM,KAAMA,EACN+C,YAAaA,EACbzE,UAAW,iCAGd,CACD7F,IAAK,SACLtK,MAAO,WACL,IAAIyT,EAAe1X,KAAKG,MACpByT,EAAI8D,EAAa9D,EACjBE,EAAI4D,EAAa5D,EACjBjJ,EAAQ6M,EAAa7M,MACrBC,EAAS4M,EAAa5M,OACtBoQ,EAAaxD,EAAawD,WAC1BI,EAAW5D,EAAa4D,SACxBY,EAAiCxE,EAAawE,+BAC9CC,EAA+BzE,EAAayE,6BAC5ChE,EAAQT,EAAaS,MACrBC,EAAQV,EAAaU,MACrB4B,EAAStC,EAAasC,OACtBoC,EAAa1E,EAAa0E,WAC1BC,EAAc3E,EAAa2E,YAE/B,KAAKxH,EAAAA,EAAAA,IAAShK,IAAUA,GAAS,KAAMgK,EAAAA,EAAAA,IAAS/J,IAAWA,GAAU,KAAM+J,EAAAA,EAAAA,IAASjB,IAAMA,KAAOA,KAAMiB,EAAAA,EAAAA,IAASf,IAAMA,KAAOA,EAC3H,OAAO,KAGT,IAAIiE,EAAe/X,KAAKG,MACpB8a,EAAmBlD,EAAakD,iBAChCI,EAAiBtD,EAAasD,eAqBlC,OAnBMJ,GAAqBA,EAAiBxX,SAAW2O,IAAY8J,KACjEjB,EAAmBiB,EAA+B,CAChD9D,MAAOA,EACPvN,MAAOuR,EACPtR,OAAQuR,EACRrC,OAAQA,KAKNqB,GAAmBA,EAAe5X,SAAW2O,IAAY+J,KAC7Dd,EAAiBc,EAA6B,CAC5ChE,MAAOA,EACPtN,MAAOuR,EACPtR,OAAQuR,EACRrC,OAAQA,KAIQrM,EAAAA,cAAoB,IAAK,CAC3CyG,UAAW,2BACVpU,KAAKsc,mBAAoBpB,GAAclb,KAAKuc,iBAAiBtB,GAAmBK,GAAYtb,KAAKwc,eAAenB,GAAiBH,GAAclb,KAAKyc,wBAAwBxB,GAAmBK,GAAYtb,KAAK0c,sBAAsBrB,SA9RjKpL,EAAkBD,EAAY9O,UAAWwQ,GAAiBC,GAAa1B,EAAkBD,EAAa2B,GA+T3KgJ,EAzS+B,CA0StC/M,EAAAA,eACF+M,EAAc/Y,YAAc,gBAC5B+Y,EAAc/B,aAAe,CAC3BsC,YAAY,EACZI,UAAU,EAEVL,iBAAkB,GAElBI,eAAgB,GAChB7F,OAAQ,OACRM,KAAM,OAENyF,aAAc,GACdQ,eAAgB,K,sDC5VX,IAAIY,EAAQ,WACjB,OAAO,MAETA,EAAM/a,YAAc,QACpB+a,EAAM/D,aAAe,CACnBgE,eAAe,EACf5E,MAAM,EACN6E,YAAa,SACbhS,MAAO,EACPC,OAAQ,GACRgS,QAAQ,EACRhE,QAAS,EACTiE,UAAW,EACX7Y,KAAM,WACNoV,OAAQ,CAAC,EAAG,QACZ0D,QAAS,CACP9E,KAAM,EACN+E,MAAO,GAETzE,mBAAmB,EACnBe,MAAO,OACP2D,UAAU,EACVC,yBAAyB,I,sDCxBpB,IAAIC,EAAQ,WACjB,OAAO,MAETA,EAAMxb,YAAc,QACpBwb,EAAMxE,aAAe,CACnBuE,yBAAyB,EACzBP,eAAe,EACf5E,MAAM,EACN6E,YAAa,OACbhS,MAAO,GACPC,OAAQ,EACRgS,QAAQ,EACR/D,QAAS,EACTgE,UAAW,EACX7Y,KAAM,SACNoV,OAAQ,CAAC,EAAG,QACZ0D,QAAS,CACP/E,IAAK,EACLoF,OAAQ,GAEV7E,mBAAmB,EACnBe,MAAO,OACP2D,UAAU,I,iHCjBDI,GAAYC,EAAAA,EAAAA,GAAyB,CAC9CC,UAAW,YACXC,eAAgBpM,EAAAA,EAChBqM,eAAgB,CAAC,CACfC,SAAU,QACVC,SAAUjB,EAAAA,GACT,CACDgB,SAAU,QACVC,SAAUR,EAAAA,IAEZS,cAAeA,EAAAA,M,8IChBjB,SAAShP,IAA2Q,OAA9PA,EAAWtM,OAAOY,QAAU,SAAUqL,GAAU,IAAK,IAAIlL,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAI+K,EAAS7K,UAAUF,GAAI,IAAK,IAAIiL,KAAOF,EAAc9L,OAAOrB,UAAU0B,eAAeV,KAAKmM,EAAQE,KAAQC,EAAOD,GAAOF,EAAOE,IAAY,OAAOC,GAAkBK,EAASnL,MAAM1D,KAAMwD,WAEhT,SAASsa,EAAeC,EAAKza,GAAK,OAUlC,SAAyBya,GAAO,GAAIrb,MAAMkK,QAAQmR,GAAM,OAAOA,EAVtBC,CAAgBD,IAQzD,SAA+BA,EAAKza,GAAK,GAAsB,qBAAXiC,UAA4BA,OAAO4I,YAAY5L,OAAOwb,IAAO,OAAQ,IAAIE,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKhe,EAAW,IAAM,IAAK,IAAiCie,EAA7BC,EAAKP,EAAIxY,OAAO4I,cAAmB+P,GAAMG,EAAKC,EAAGC,QAAQC,QAAoBP,EAAK3O,KAAK+O,EAAGpa,QAAYX,GAAK2a,EAAKxa,SAAWH,GAA3D4a,GAAK,IAAoE,MAAOO,GAAON,GAAK,EAAMC,EAAKK,EAAtL,QAAuM,IAAWP,GAAsB,MAAhBI,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOH,EARjaS,CAAsBX,EAAKza,IAI5F,SAAqC8M,EAAGuO,GAAU,IAAKvO,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOwO,EAAkBxO,EAAGuO,GAAS,IAAIpb,EAAIhB,OAAOrB,UAAUyE,SAASzD,KAAKkO,GAAGhL,MAAM,GAAI,GAAc,WAAN7B,GAAkB6M,EAAEnQ,cAAasD,EAAI6M,EAAEnQ,YAAY4B,MAAM,GAAU,QAAN0B,GAAqB,QAANA,EAAa,OAAOb,MAAMgU,KAAKtG,GAAI,GAAU,cAAN7M,GAAqB,2CAA2CyB,KAAKzB,GAAI,OAAOqb,EAAkBxO,EAAGuO,GAJpTE,CAA4Bd,EAAKza,IAEnI,WAA8B,MAAM,IAAIR,UAAU,6IAFuFgc,GAMzI,SAASF,EAAkBb,EAAKgB,IAAkB,MAAPA,GAAeA,EAAMhB,EAAIta,UAAQsb,EAAMhB,EAAIta,QAAQ,IAAK,IAAIH,EAAI,EAAG0b,EAAO,IAAItc,MAAMqc,GAAMzb,EAAIyb,EAAKzb,IAAO0b,EAAK1b,GAAKya,EAAIza,GAAM,OAAO0b,EAczK,IAAIC,GAAmCC,EAAAA,EAAAA,aAAW,SAAUtI,EAAMhB,GACvE,IAAIuJ,EAASvI,EAAKuI,OACdC,EAAaxI,EAAK/L,MAClBA,OAAuB,IAAfuU,EAAwB,OAASA,EACzCC,EAAczI,EAAK9L,OACnBA,OAAyB,IAAhBuU,EAAyB,OAASA,EAC3CC,EAAW1I,EAAK0I,SAChBC,EAAY3I,EAAK2I,UACjBC,EAAY5I,EAAK4I,UACjB9S,EAAWkK,EAAKlK,SAChB+S,EAAgB7I,EAAKrN,SACrBA,OAA6B,IAAlBkW,EAA2B,EAAIA,EAC1CzN,EAAK4E,EAAK5E,GACVoC,EAAYwC,EAAKxC,UAMjBsL,EAAa5B,GAJD6B,EAAAA,EAAAA,UAAS,CACvBC,gBAAiB,EACjBC,iBAAkB,IAEuB,GACvCC,EAAQJ,EAAW,GACnBK,EAAWL,EAAW,GAEtBM,GAAeC,EAAAA,EAAAA,QAAO,OAC1BC,EAAAA,EAAAA,qBAAoBtK,GAAK,WACvB,OAAOoK,IACN,CAACA,IAEJ,IACIG,EAAarC,GADA6B,EAAAA,EAAAA,WAAS,GACkB,GACxCS,EAAUD,EAAW,GACrBE,EAAaF,EAAW,GAExBG,EAAmB,WACrB,OAAKN,EAAa3U,QAIX,CACLuU,eAAgBI,EAAa3U,QAAQkV,YACrCV,gBAAiBG,EAAa3U,QAAQmV,cAL/B,MASPC,EAA4B,WAC9B,GAAKL,EAAL,CAIA,IAAIM,EAAUJ,IAEd,GAAII,EAAS,CACX,IAAIC,EAAWb,EAAMF,eACjBgB,EAAYd,EAAMD,gBAClBD,EAAiBc,EAAQd,eACzBC,EAAkBa,EAAQb,gBAE1BD,IAAmBe,GAAYd,IAAoBe,GACrDb,EAAS,CACPH,eAAgBA,EAChBC,gBAAiBA,OAMrBgB,EAAetX,EAAW,EAAIuX,IAAUL,EAA2BlX,GAAYkX,GAsCnF3S,EAAAA,EAAAA,YAAU,WACR,GAAIsS,EAAS,CACX,IAAIW,EAAOT,IAEPS,GACFhB,EAASgB,MAGZ,CAACX,KACJtS,EAAAA,EAAAA,YAAU,WACRuS,GAAW,KACV,IACH,IAAIW,EAAQ,CACVnW,MAAOA,EACPC,OAAQA,EACRwU,SAAUA,EACVC,UAAWA,EACXC,UAAWA,GAEb,OAAoB7R,EAAAA,cAAoBsT,EAAAA,GAAqB,CAC3DvW,aAAa,EACbC,cAAc,EACdH,SAAUqW,EACV1V,UAAW6U,GACGrS,EAAAA,cAAoB,MAAOkB,EAAS,GAAU,MAANmD,EAAa,CACnEA,GAAI,GAAGF,OAAOE,IACZ,GAAI,CACNoC,UAAWmE,IAAW,gCAAiCnE,GACvD4M,MAAOA,EACPpL,IAAKoK,IAjEW,WAChB,IAAIJ,EAAiBE,EAAMF,eACvBC,EAAkBC,EAAMD,gBAE5B,GAAID,EAAiB,GAAKC,EAAkB,EAC1C,OAAO,MAGTqB,EAAAA,EAAAA,IAAKC,EAAAA,EAAAA,IAAUtW,KAAUsW,EAAAA,EAAAA,IAAUrW,GAAS,kHAAmHD,EAAOC,IACtKoW,EAAAA,EAAAA,IAAM/B,GAAUA,EAAS,EAAG,4CAA6CA,GACzE,IAAIiC,GAAkBD,EAAAA,EAAAA,IAAUtW,GAAS+U,EAAiB/U,EACtDwW,GAAmBF,EAAAA,EAAAA,IAAUrW,GAAU+U,EAAkB/U,EAmB7D,OAjBIqU,GAAUA,EAAS,IAEjBiC,EAEFC,EAAmBD,EAAkBjC,EAC5BkC,IAETD,EAAkBC,EAAmBlC,GAInCK,GAAa6B,EAAmB7B,IAClC6B,EAAmB7B,KAIvB0B,EAAAA,EAAAA,GAAKE,EAAkB,GAAKC,EAAmB,EAAG,gQAAiQD,EAAiBC,EAAkBxW,EAAOC,EAAQwU,EAAUC,EAAWJ,IACtW3R,EAAAA,EAAAA,cAAad,EAAU,CACzC7B,MAAOuW,EACPtW,OAAQuW,IAkCRC,S,6BCvJN,IAAIC,EAAW,WACX,GAAmB,qBAARC,IACP,OAAOA,IASX,SAASC,EAAS1D,EAAKxP,GACnB,IAAIrI,GAAU,EAQd,OAPA6X,EAAI2D,MAAK,SAAUpV,EAAOvH,GACtB,OAAIuH,EAAM,KAAOiC,IACbrI,EAASnB,GACF,MAIRmB,EAEX,OAAsB,WAClB,SAASyb,IACL3hB,KAAK4hB,YAAc,GAuEvB,OArEArf,OAAOoN,eAAegS,EAAQzgB,UAAW,OAAQ,CAI7C2gB,IAAK,WACD,OAAO7hB,KAAK4hB,YAAYne,QAE5B4L,YAAY,EACZO,cAAc,IAMlB+R,EAAQzgB,UAAU2gB,IAAM,SAAUtT,GAC9B,IAAIxJ,EAAQ0c,EAASzhB,KAAK4hB,YAAarT,GACnCjC,EAAQtM,KAAK4hB,YAAY7c,GAC7B,OAAOuH,GAASA,EAAM,IAO1BqV,EAAQzgB,UAAU4gB,IAAM,SAAUvT,EAAKtK,GACnC,IAAIc,EAAQ0c,EAASzhB,KAAK4hB,YAAarT,IAClCxJ,EACD/E,KAAK4hB,YAAY7c,GAAO,GAAKd,EAG7BjE,KAAK4hB,YAAYtS,KAAK,CAACf,EAAKtK,KAOpC0d,EAAQzgB,UAAU6gB,OAAS,SAAUxT,GACjC,IAAItC,EAAUjM,KAAK4hB,YACf7c,EAAQ0c,EAASxV,EAASsC,IACzBxJ,GACDkH,EAAQ+V,OAAOjd,EAAO,IAO9B4c,EAAQzgB,UAAU+gB,IAAM,SAAU1T,GAC9B,SAAUkT,EAASzhB,KAAK4hB,YAAarT,IAKzCoT,EAAQzgB,UAAUghB,MAAQ,WACtBliB,KAAK4hB,YAAYI,OAAO,IAO5BL,EAAQzgB,UAAUmL,QAAU,SAAU8V,EAAUC,QAChC,IAARA,IAAkBA,EAAM,MAC5B,IAAK,IAAI9D,EAAK,EAAG1T,EAAK5K,KAAK4hB,YAAatD,EAAK1T,EAAGnH,OAAQ6a,IAAM,CAC1D,IAAIhS,EAAQ1B,EAAG0T,GACf6D,EAASjgB,KAAKkgB,EAAK9V,EAAM,GAAIA,EAAM,MAGpCqV,EAzEJ,GAtBI,GAsGXU,EAA8B,qBAAXnY,QAA8C,qBAAb0B,UAA4B1B,OAAO0B,WAAaA,SAGpG0W,EACsB,qBAAXle,EAAAA,GAA0BA,EAAAA,EAAOiD,OAASA,KAC1CjD,EAAAA,EAES,qBAATE,MAAwBA,KAAK+C,OAASA,KACtC/C,KAEW,qBAAX4F,QAA0BA,OAAO7C,OAASA,KAC1C6C,OAGJ1F,SAAS,cAATA,GASP+d,EACqC,oBAA1BC,sBAIAA,sBAAsB/hB,KAAK6hB,GAE/B,SAAUH,GAAY,OAAOxZ,YAAW,WAAc,OAAOwZ,EAASzd,KAAKC,SAAW,IAAO,KAqExG,IAGI8d,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,qBAArBC,iBAInCC,EAA0C,WAM1C,SAASA,IAML5iB,KAAK6iB,YAAa,EAMlB7iB,KAAK8iB,sBAAuB,EAM5B9iB,KAAK+iB,mBAAqB,KAM1B/iB,KAAKgjB,WAAa,GAClBhjB,KAAKijB,iBAAmBjjB,KAAKijB,iBAAiBxiB,KAAKT,MACnDA,KAAKkjB,QAjGb,SAAmBf,EAAUgB,GACzB,IAAIC,GAAc,EAAOC,GAAe,EAAOpb,EAAe,EAO9D,SAASqb,IACDF,IACAA,GAAc,EACdjB,KAEAkB,GACAE,IAUR,SAASC,IACLjB,EAAwBe,GAO5B,SAASC,IACL,IAAIE,EAAY/e,KAAKC,MACrB,GAAIye,EAAa,CAEb,GAAIK,EAAYxb,EA7CN,EA8CN,OAMJob,GAAe,OAGfD,GAAc,EACdC,GAAe,EACf1a,WAAW6a,EAAiBL,GAEhClb,EAAewb,EAEnB,OAAOF,EA6CYzZ,CAAS9J,KAAKkjB,QAAQziB,KAAKT,MAzC9B,IAyMhB,OAxJA4iB,EAAyB1hB,UAAUwiB,YAAc,SAAUC,IACjD3jB,KAAKgjB,WAAWnf,QAAQ8f,IAC1B3jB,KAAKgjB,WAAW1T,KAAKqU,GAGpB3jB,KAAK6iB,YACN7iB,KAAK4jB,YASbhB,EAAyB1hB,UAAU2iB,eAAiB,SAAUF,GAC1D,IAAIG,EAAY9jB,KAAKgjB,WACjBje,EAAQ+e,EAAUjgB,QAAQ8f,IAEzB5e,GACD+e,EAAU9B,OAAOjd,EAAO,IAGvB+e,EAAUrgB,QAAUzD,KAAK6iB,YAC1B7iB,KAAK+jB,eASbnB,EAAyB1hB,UAAUgiB,QAAU,WACnBljB,KAAKgkB,oBAIvBhkB,KAAKkjB,WAWbN,EAAyB1hB,UAAU8iB,iBAAmB,WAElD,IAAIC,EAAkBjkB,KAAKgjB,WAAW9T,QAAO,SAAUyU,GACnD,OAAOA,EAASO,eAAgBP,EAASQ,eAQ7C,OADAF,EAAgB5X,SAAQ,SAAUsX,GAAY,OAAOA,EAASS,qBACvDH,EAAgBxgB,OAAS,GAQpCmf,EAAyB1hB,UAAU0iB,SAAW,WAGrCvB,IAAariB,KAAK6iB,aAMvBjX,SAASyY,iBAAiB,gBAAiBrkB,KAAKijB,kBAChD/Y,OAAOma,iBAAiB,SAAUrkB,KAAKkjB,SACnCR,GACA1iB,KAAK+iB,mBAAqB,IAAIJ,iBAAiB3iB,KAAKkjB,SACpDljB,KAAK+iB,mBAAmBtX,QAAQG,SAAU,CACtC0Y,YAAY,EACZC,WAAW,EACXC,eAAe,EACfC,SAAS,MAIb7Y,SAASyY,iBAAiB,qBAAsBrkB,KAAKkjB,SACrDljB,KAAK8iB,sBAAuB,GAEhC9iB,KAAK6iB,YAAa,IAQtBD,EAAyB1hB,UAAU6iB,YAAc,WAGxC1B,GAAcriB,KAAK6iB,aAGxBjX,SAAS8Y,oBAAoB,gBAAiB1kB,KAAKijB,kBACnD/Y,OAAOwa,oBAAoB,SAAU1kB,KAAKkjB,SACtCljB,KAAK+iB,oBACL/iB,KAAK+iB,mBAAmB7V,aAExBlN,KAAK8iB,sBACLlX,SAAS8Y,oBAAoB,qBAAsB1kB,KAAKkjB,SAE5DljB,KAAK+iB,mBAAqB,KAC1B/iB,KAAK8iB,sBAAuB,EAC5B9iB,KAAK6iB,YAAa,IAStBD,EAAyB1hB,UAAU+hB,iBAAmB,SAAUrY,GAC5D,IAAIsB,EAAKtB,EAAG+Z,aAAcA,OAAsB,IAAPzY,EAAgB,GAAKA,EAEvCuW,EAAef,MAAK,SAAUnT,GACjD,SAAUoW,EAAa9gB,QAAQ0K,OAG/BvO,KAAKkjB,WAQbN,EAAyBgC,YAAc,WAInC,OAHK5kB,KAAK6kB,YACN7kB,KAAK6kB,UAAY,IAAIjC,GAElB5iB,KAAK6kB,WAOhBjC,EAAyBiC,UAAY,KAC9BjC,EAhMmC,GA0M1CkC,EAAsB,SAAUtW,EAAQrO,GACxC,IAAK,IAAIme,EAAK,EAAG1T,EAAKrI,OAAOmM,KAAKvO,GAAQme,EAAK1T,EAAGnH,OAAQ6a,IAAM,CAC5D,IAAI/P,EAAM3D,EAAG0T,GACb/b,OAAOoN,eAAenB,EAAQD,EAAK,CAC/BtK,MAAO9D,EAAMoO,GACbc,YAAY,EACZQ,UAAU,EACVD,cAAc,IAGtB,OAAOpB,GASPuW,EAAe,SAAUvW,GAOzB,OAHkBA,GAAUA,EAAOwW,eAAiBxW,EAAOwW,cAAcC,aAGnD3C,GAItB4C,EAAYC,EAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,EAAQnhB,GACb,OAAOohB,WAAWphB,IAAU,EAShC,SAASqhB,EAAeC,GAEpB,IADA,IAAIC,EAAY,GACPlH,EAAK,EAAGA,EAAK9a,UAAUC,OAAQ6a,IACpCkH,EAAUlH,EAAK,GAAK9a,UAAU8a,GAElC,OAAOkH,EAAUC,QAAO,SAAU1E,EAAM2E,GAEpC,OAAO3E,EAAOqE,EADFG,EAAO,UAAYG,EAAW,aAE3C,GAmCP,SAASC,EAA0BnX,GAG/B,IAAI+R,EAAc/R,EAAO+R,YAAaC,EAAehS,EAAOgS,aAS5D,IAAKD,IAAgBC,EACjB,OAAO0E,EAEX,IAAIK,EAASR,EAAYvW,GAAQoX,iBAAiBpX,GAC9CqX,EA3CR,SAAqBN,GAGjB,IAFA,IACIM,EAAW,GACNvH,EAAK,EAAGwH,EAFD,CAAC,MAAO,QAAS,SAAU,QAEDxH,EAAKwH,EAAYriB,OAAQ6a,IAAM,CACrE,IAAIoH,EAAWI,EAAYxH,GACvBra,EAAQshB,EAAO,WAAaG,GAChCG,EAASH,GAAYN,EAAQnhB,GAEjC,OAAO4hB,EAmCQE,CAAYR,GACvBS,EAAWH,EAAS3N,KAAO2N,EAAS5I,MACpCgJ,EAAUJ,EAAS5N,IAAM4N,EAASxI,OAKlCxS,EAAQua,EAAQG,EAAO1a,OAAQC,EAASsa,EAAQG,EAAOza,QAqB3D,GAlByB,eAArBya,EAAOW,YAOH7e,KAAKyU,MAAMjR,EAAQmb,KAAczF,IACjC1V,GAASya,EAAeC,EAAQ,OAAQ,SAAWS,GAEnD3e,KAAKyU,MAAMhR,EAASmb,KAAazF,IACjC1V,GAAUwa,EAAeC,EAAQ,MAAO,UAAYU,KAoDhE,SAA2BzX,GACvB,OAAOA,IAAWuW,EAAYvW,GAAQ5C,SAASua,gBA9C1CC,CAAkB5X,GAAS,CAK5B,IAAI6X,EAAgBhf,KAAKyU,MAAMjR,EAAQmb,GAAYzF,EAC/C+F,EAAiBjf,KAAKyU,MAAMhR,EAASmb,GAAWzF,EAMpB,IAA5BnZ,KAAKqN,IAAI2R,KACTxb,GAASwb,GAEoB,IAA7Bhf,KAAKqN,IAAI4R,KACTxb,GAAUwb,GAGlB,OAAOnB,EAAeU,EAAS3N,KAAM2N,EAAS5N,IAAKpN,EAAOC,GAQ9D,IAAIyb,EAGkC,qBAAvBC,mBACA,SAAUhY,GAAU,OAAOA,aAAkBuW,EAAYvW,GAAQgY,oBAKrE,SAAUhY,GAAU,OAAQA,aAAkBuW,EAAYvW,GAAQiY,YAC3C,oBAAnBjY,EAAOkY,SAiBtB,SAASC,EAAenY,GACpB,OAAK6T,EAGDkE,EAAqB/X,GAhH7B,SAA2BA,GACvB,IAAIoY,EAAOpY,EAAOkY,UAClB,OAAOvB,EAAe,EAAG,EAAGyB,EAAK/b,MAAO+b,EAAK9b,QA+GlC+b,CAAkBrY,GAEtBmX,EAA0BnX,GALtB0W,EAuCf,SAASC,EAAevR,EAAGE,EAAGjJ,EAAOC,GACjC,MAAO,CAAE8I,EAAGA,EAAGE,EAAGA,EAAGjJ,MAAOA,EAAOC,OAAQA,GAO/C,IAAIgc,EAAmC,WAMnC,SAASA,EAAkBtY,GAMvBxO,KAAK+mB,eAAiB,EAMtB/mB,KAAKgnB,gBAAkB,EAMvBhnB,KAAKinB,aAAe9B,EAAe,EAAG,EAAG,EAAG,GAC5CnlB,KAAKwO,OAASA,EA0BlB,OAlBAsY,EAAkB5lB,UAAUsV,SAAW,WACnC,IAAI0Q,EAAOP,EAAe3mB,KAAKwO,QAE/B,OADAxO,KAAKinB,aAAeC,EACZA,EAAKrc,QAAU7K,KAAK+mB,gBACxBG,EAAKpc,SAAW9K,KAAKgnB,iBAQ7BF,EAAkB5lB,UAAUimB,cAAgB,WACxC,IAAID,EAAOlnB,KAAKinB,aAGhB,OAFAjnB,KAAK+mB,eAAiBG,EAAKrc,MAC3B7K,KAAKgnB,gBAAkBE,EAAKpc,OACrBoc,GAEJJ,EAnD4B,GAsDnCM,EAOA,SAA6B5Y,EAAQ6Y,GACjC,IAAI9a,EA/FZ,SAA4B3B,GACxB,IAAIgJ,EAAIhJ,EAAGgJ,EAAGE,EAAIlJ,EAAGkJ,EAAGjJ,EAAQD,EAAGC,MAAOC,EAASF,EAAGE,OAElDwc,EAAoC,qBAApBC,gBAAkCA,gBAAkBhlB,OACpE2kB,EAAO3kB,OAAOU,OAAOqkB,EAAOpmB,WAShC,OAPA4jB,EAAmBoC,EAAM,CACrBtT,EAAGA,EAAGE,EAAGA,EAAGjJ,MAAOA,EAAOC,OAAQA,EAClCmN,IAAKnE,EACLmJ,MAAOrJ,EAAI/I,EACXwS,OAAQvS,EAASgJ,EACjBoE,KAAMtE,IAEHsT,EAkFeM,CAAmBH,GAOrCvC,EAAmB9kB,KAAM,CAAEwO,OAAQA,EAAQjC,YAAaA,KAK5Dkb,EAAmC,WAWnC,SAASA,EAAkBtF,EAAUuF,EAAYC,GAc7C,GAPA3nB,KAAK4nB,oBAAsB,GAM3B5nB,KAAK6nB,cAAgB,IAAItG,EACD,oBAAbY,EACP,MAAM,IAAIrf,UAAU,2DAExB9C,KAAK8nB,UAAY3F,EACjBniB,KAAK+nB,YAAcL,EACnB1nB,KAAKgoB,aAAeL,EAoHxB,OA5GAF,EAAkBvmB,UAAUuK,QAAU,SAAU+C,GAC5C,IAAKhL,UAAUC,OACX,MAAM,IAAIX,UAAU,4CAGxB,GAAuB,qBAAZuH,SAA6BA,mBAAmB9H,OAA3D,CAGA,KAAMiM,aAAkBuW,EAAYvW,GAAQnE,SACxC,MAAM,IAAIvH,UAAU,yCAExB,IAAImlB,EAAejoB,KAAK6nB,cAEpBI,EAAahG,IAAIzT,KAGrByZ,EAAanG,IAAItT,EAAQ,IAAIsY,EAAkBtY,IAC/CxO,KAAK+nB,YAAYrE,YAAY1jB,MAE7BA,KAAK+nB,YAAY7E,aAQrBuE,EAAkBvmB,UAAUgnB,UAAY,SAAU1Z,GAC9C,IAAKhL,UAAUC,OACX,MAAM,IAAIX,UAAU,4CAGxB,GAAuB,qBAAZuH,SAA6BA,mBAAmB9H,OAA3D,CAGA,KAAMiM,aAAkBuW,EAAYvW,GAAQnE,SACxC,MAAM,IAAIvH,UAAU,yCAExB,IAAImlB,EAAejoB,KAAK6nB,cAEnBI,EAAahG,IAAIzT,KAGtByZ,EAAalG,OAAOvT,GACfyZ,EAAalH,MACd/gB,KAAK+nB,YAAYlE,eAAe7jB,SAQxCynB,EAAkBvmB,UAAUgM,WAAa,WACrClN,KAAKmoB,cACLnoB,KAAK6nB,cAAc3F,QACnBliB,KAAK+nB,YAAYlE,eAAe7jB,OAQpCynB,EAAkBvmB,UAAUgjB,aAAe,WACvC,IAAIjZ,EAAQjL,KACZA,KAAKmoB,cACLnoB,KAAK6nB,cAAcxb,SAAQ,SAAU+b,GAC7BA,EAAY5R,YACZvL,EAAM2c,oBAAoBtY,KAAK8Y,OAU3CX,EAAkBvmB,UAAUkjB,gBAAkB,WAE1C,GAAKpkB,KAAKmkB,YAAV,CAGA,IAAI/B,EAAMpiB,KAAKgoB,aAEX/b,EAAUjM,KAAK4nB,oBAAoBna,KAAI,SAAU2a,GACjD,OAAO,IAAIhB,EAAoBgB,EAAY5Z,OAAQ4Z,EAAYjB,oBAEnEnnB,KAAK8nB,UAAU5lB,KAAKkgB,EAAKnW,EAASmW,GAClCpiB,KAAKmoB,gBAOTV,EAAkBvmB,UAAUinB,YAAc,WACtCnoB,KAAK4nB,oBAAoB5F,OAAO,IAOpCyF,EAAkBvmB,UAAUijB,UAAY,WACpC,OAAOnkB,KAAK4nB,oBAAoBnkB,OAAS,GAEtCgkB,EAlJ4B,GAwJnC3D,EAA+B,qBAAZuE,QAA0B,IAAIA,QAAY,IAAI9G,EAKjE+G,EAOA,SAASA,EAAenG,GACpB,KAAMniB,gBAAgBsoB,GAClB,MAAM,IAAIxlB,UAAU,sCAExB,IAAKU,UAAUC,OACX,MAAM,IAAIX,UAAU,4CAExB,IAAI4kB,EAAa9E,EAAyBgC,cACtCjB,EAAW,IAAI8D,EAAkBtF,EAAUuF,EAAY1nB,MAC3D8jB,EAAUhC,IAAI9hB,KAAM2jB,IAK5B,CACI,UACA,YACA,cACFtX,SAAQ,SAAUkc,GAChBD,EAAepnB,UAAUqnB,GAAU,WAC/B,IAAI3d,EACJ,OAAQA,EAAKkZ,EAAUjC,IAAI7hB,OAAOuoB,GAAQ7kB,MAAMkH,EAAIpH,eAI5D,IAAIuB,EAEuC,qBAA5Bud,EAASgG,eACThG,EAASgG,eAEbA,EAGX,a,sBC/5Be,SAASvX,EAAgBX,GAItC,OAHAW,EAAkBxO,OAAOC,eAAiBD,OAAO6O,eAAe3Q,OAAS,SAAyB2P,GAChG,OAAOA,EAAE3N,WAAaF,OAAO6O,eAAehB,IAEvCW,EAAgBX,G,sGCHV,SAASqB,EAAUF,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI1O,UAAU,sDAGtByO,EAASrQ,UAAYqB,OAAOU,OAAOuO,GAAcA,EAAWtQ,UAAW,CACrEjB,YAAa,CACXgE,MAAOsN,EACP1B,UAAU,EACVD,cAAc,KAGlBrN,OAAOoN,eAAe4B,EAAU,YAAa,CAC3C1B,UAAU,IAER2B,IAAY,OAAeD,EAAUC,K,gFCd5B,SAASP,EAA2B3M,EAAMpC,GACvD,GAAIA,IAA2B,YAAlB,OAAQA,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIY,UAAU,4DAGtB,OAAO,OAAsBwB","sources":["../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-resize-detector/node_modules/tslib/tslib.es6.js","../node_modules/react-resize-detector/node_modules/lodash/isObject.js","../node_modules/react-resize-detector/node_modules/lodash/_root.js","../node_modules/react-resize-detector/node_modules/lodash/_freeGlobal.js","../node_modules/react-resize-detector/node_modules/lodash/now.js","../node_modules/react-resize-detector/node_modules/lodash/_trimmedEndIndex.js","../node_modules/react-resize-detector/node_modules/lodash/_baseTrim.js","../node_modules/react-resize-detector/node_modules/lodash/_Symbol.js","../node_modules/react-resize-detector/node_modules/lodash/_getRawTag.js","../node_modules/react-resize-detector/node_modules/lodash/_objectToString.js","../node_modules/react-resize-detector/node_modules/lodash/_baseGetTag.js","../node_modules/react-resize-detector/node_modules/lodash/isSymbol.js","../node_modules/react-resize-detector/node_modules/lodash/isObjectLike.js","../node_modules/react-resize-detector/node_modules/lodash/toNumber.js","../node_modules/react-resize-detector/node_modules/lodash/debounce.js","../node_modules/react-resize-detector/node_modules/lodash/throttle.js","../node_modules/react-resize-detector/src/utils.ts","../node_modules/react-resize-detector/src/ResizeDetector.tsx","../node_modules/react-resize-detector/src/useResizeDetector.ts","../node_modules/recharts/es6/cartesian/Area.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/chart/AreaChart.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/*! *****************************************************************************\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","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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","/** 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 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 root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\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 * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\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 object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\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 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 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","import debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nexport type patchResizeHandlerType = ReturnType | ReturnType | ResizeObserverCallback;\n\nexport const patchResizeHandler = (\n resizeCallback: ResizeObserverCallback,\n refreshMode: Props['refreshMode'],\n refreshRate: Props['refreshRate'],\n refreshOptions: Props['refreshOptions']\n): patchResizeHandlerType => {\n switch (refreshMode) {\n case 'debounce':\n return debounce(resizeCallback, refreshRate, refreshOptions);\n case 'throttle':\n return throttle(resizeCallback, refreshRate, refreshOptions);\n default:\n return resizeCallback;\n }\n};\n\nexport const isFunction = (fn: any): boolean => typeof fn === 'function';\n\nexport const isSSR = (): boolean => typeof window === 'undefined';\n\nexport const isDOMElement = (element: any): boolean => element instanceof Element || element instanceof HTMLDocument;\n\nexport const createNotifier =\n (\n onResize: Props['onResize'],\n setSize: React.Dispatch>,\n handleWidth: boolean,\n handleHeight: boolean\n ) =>\n ({ width, height }: ReactResizeDetectorDimensions): void => {\n setSize(prev => {\n if (prev.width === width && prev.height === height) {\n // skip if dimensions haven't changed\n return prev;\n }\n\n if ((prev.width === width && !handleHeight) || (prev.height === height && !handleWidth)) {\n // process `handleHeight/handleWidth` props\n return prev;\n }\n\n if (onResize && isFunction(onResize)) {\n onResize(width, height);\n }\n\n return { width, height };\n });\n };\n","import * as React from 'react';\nimport { PureComponent, isValidElement, cloneElement, createRef, ReactNode, ReactElement, RefObject } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport { patchResizeHandler, isFunction, isSSR, isDOMElement, createNotifier } from './utils';\n\nexport interface ReactResizeDetectorDimensions {\n height?: number;\n width?: number;\n}\n\ninterface ChildFunctionProps extends ReactResizeDetectorDimensions {\n targetRef?: RefObject;\n}\n\nexport interface Props {\n /**\n * Function that will be invoked with observable element's width and height.\n * Default: undefined\n */\n onResize?: (width?: number, height?: number) => void;\n /**\n * Trigger update on height change.\n * Default: true\n */\n handleHeight?: boolean;\n /**\n * Trigger onResize on width change.\n * Default: true\n */\n handleWidth?: boolean;\n /**\n * Do not trigger update when a component mounts.\n * Default: false\n */\n skipOnMount?: boolean;\n /**\n * Changes the update strategy. Possible values: \"throttle\" and \"debounce\".\n * See `lodash` docs for more information https://lodash.com/docs/\n * undefined - callback will be fired for every frame.\n * Default: undefined\n */\n refreshMode?: 'throttle' | 'debounce';\n /**\n * Set the timeout/interval for `refreshMode` strategy\n * Default: undefined\n */\n refreshRate?: number;\n /**\n * Pass additional params to `refreshMode` according to lodash docs\n * Default: undefined\n */\n refreshOptions?: { leading?: boolean; trailing?: boolean };\n /**\n * These options will be used as a second parameter of `resizeObserver.observe` method\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/observe\n * Default: undefined\n */\n observerOptions?: ResizeObserverOptions;\n}\n\nexport interface ComponentsProps extends Props {\n /**\n * A selector of an element to observe.\n * You can use this property to attach resize-observer to any DOM element.\n * Please refer to the querySelector docs.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n querySelector?: string;\n /**\n * Valid only for a callback-pattern.\n * Ignored for other render types.\n * Set resize-detector's node type.\n * You can pass any valid React node: string with node's name or element.\n * Can be useful when you need to handle table's or paragraph's resizes.\n * Default: \"div\"\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n nodeType?: keyof JSX.IntrinsicElements; // will be passed to React.createElement()\n /**\n * A DOM element to observe.\n * By default it's a parent element in relation to the ReactResizeDetector component.\n * But you can pass any DOM element to observe.\n * This property is omitted when you pass querySelector.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 6.0.0.\n * Use targetRef instead\n */\n targetDomEl?: ElementT;\n /**\n * A React reference of the element to observe.\n * Pass a reference to the element you want to attach resize handlers to.\n * It must be an instance of React.useRef or React.createRef functions\n * Default: undefined\n */\n targetRef?: RefObject;\n\n render?: (props: ReactResizeDetectorDimensions) => ReactNode;\n\n children?: ReactNode | ((props: ChildFunctionProps) => ReactNode);\n}\n\nclass ResizeDetector extends PureComponent<\n ComponentsProps,\n ReactResizeDetectorDimensions\n> {\n skipOnMount: boolean | undefined;\n targetRef;\n observableElement;\n resizeHandler;\n resizeObserver;\n constructor(props: ComponentsProps) {\n super(props);\n\n const { skipOnMount, refreshMode, refreshRate = 1000, refreshOptions } = props;\n\n this.state = {\n width: undefined,\n height: undefined\n };\n\n this.skipOnMount = skipOnMount;\n this.targetRef = createRef();\n this.observableElement = null;\n\n if (isSSR()) {\n return;\n }\n\n this.resizeHandler = patchResizeHandler(this.createResizeHandler, refreshMode, refreshRate, refreshOptions);\n this.resizeObserver = new window.ResizeObserver(this.resizeHandler);\n }\n\n componentDidMount(): void {\n this.attachObserver();\n }\n\n componentDidUpdate(): void {\n this.attachObserver();\n }\n\n componentWillUnmount(): void {\n if (isSSR()) {\n return;\n }\n this.resizeObserver.disconnect();\n this.cancelHandler();\n }\n\n cancelHandler = (): void => {\n if (this.resizeHandler && this.resizeHandler.cancel) {\n // cancel debounced handler\n this.resizeHandler.cancel();\n this.resizeHandler = null;\n }\n };\n\n attachObserver = (): void => {\n const { targetRef, observerOptions } = this.props;\n\n if (isSSR()) {\n return;\n }\n\n if (targetRef && targetRef.current) {\n this.targetRef.current = targetRef.current;\n }\n\n const element = this.getElement();\n if (!element) {\n // can't find element to observe\n return;\n }\n\n if (this.observableElement && this.observableElement === element) {\n // element is already observed\n return;\n }\n\n this.observableElement = element;\n this.resizeObserver.observe(element, observerOptions);\n };\n\n getElement = (): Element | Text | null => {\n const { querySelector, targetDomEl } = this.props;\n\n if (isSSR()) return null;\n\n // in case we pass a querySelector\n if (querySelector) return document.querySelector(querySelector);\n // in case we pass a DOM element\n if (targetDomEl && isDOMElement(targetDomEl)) return targetDomEl;\n // in case we pass a React ref using React.createRef()\n if (this.targetRef && isDOMElement(this.targetRef.current)) return this.targetRef.current;\n\n // the worse case when we don't receive any information from the parent and the library doesn't add any wrappers\n // we have to use a deprecated `findDOMNode` method in order to find a DOM element to attach to\n const currentElement = findDOMNode(this);\n\n if (!currentElement) return null;\n\n const renderType = this.getRenderType();\n switch (renderType) {\n case 'renderProp':\n return currentElement;\n case 'childFunction':\n return currentElement;\n case 'child':\n return currentElement;\n case 'childArray':\n return currentElement;\n default:\n return currentElement.parentElement;\n }\n };\n\n createResizeHandler: ResizeObserverCallback = (entries): void => {\n const { handleWidth = true, handleHeight = true, onResize } = this.props;\n\n if (!handleWidth && !handleHeight) return;\n\n const notifyResize = createNotifier(onResize, this.setState.bind(this), handleWidth, handleHeight);\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !this.skipOnMount && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n this.skipOnMount = false;\n });\n };\n\n getRenderType = (): string => {\n const { render, children } = this.props;\n if (isFunction(render)) {\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'renderProp';\n }\n\n if (isFunction(children)) {\n return 'childFunction';\n }\n\n if (isValidElement(children)) {\n return 'child';\n }\n\n if (Array.isArray(children)) {\n // DEPRECATED. Wrap children with a single parent\n return 'childArray';\n }\n\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'parent';\n };\n\n render() {\n const { render, children, nodeType: WrapperTag = 'div' } = this.props;\n const { width, height } = this.state;\n\n const childProps = { width, height, targetRef: this.targetRef };\n const renderType = this.getRenderType();\n\n let typedChildren: any;\n\n switch (renderType) {\n case 'renderProp':\n return render && render(childProps);\n case 'childFunction':\n typedChildren = children as (props: ChildFunctionProps) => ReactNode;\n return typedChildren(childProps);\n case 'child':\n // @TODO bug prone logic\n typedChildren = children as ReactElement;\n if (typedChildren.type && typeof typedChildren.type === 'string') {\n // child is a native DOM elements such as div, span etc\n const { targetRef, ...nativeProps } = childProps;\n return cloneElement(typedChildren, nativeProps);\n }\n // class or functional component otherwise\n return cloneElement(typedChildren, childProps);\n case 'childArray':\n typedChildren = children as [ReactElement];\n return typedChildren.map((el: ReactElement) => !!el && cloneElement(el, childProps));\n default:\n return ;\n }\n }\n}\n\nexport default ResizeDetector;\n","import { useLayoutEffect, useEffect, useState, useRef, MutableRefObject } from 'react';\n\nimport { patchResizeHandler, createNotifier, isSSR } from './utils';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nconst useEnhancedEffect = isSSR() ? useEffect : useLayoutEffect;\n\ninterface FunctionProps extends Props {\n targetRef?: ReturnType;\n}\n\nfunction useResizeDetector(props: FunctionProps = {}): UseResizeDetectorReturn {\n const {\n skipOnMount = false,\n refreshMode,\n refreshRate = 1000,\n refreshOptions,\n handleWidth = true,\n handleHeight = true,\n targetRef,\n observerOptions,\n onResize\n } = props;\n\n const skipResize: MutableRefObject = useRef(skipOnMount);\n const localRef = useRef(null);\n const ref = (targetRef ?? localRef) as MutableRefObject;\n const resizeHandler = useRef();\n\n const [size, setSize] = useState({\n width: undefined,\n height: undefined\n });\n\n useEnhancedEffect(() => {\n if (isSSR()) {\n return;\n }\n\n const notifyResize = createNotifier(onResize, setSize, handleWidth, handleHeight);\n\n const resizeCallback: ResizeObserverCallback = entries => {\n if (!handleWidth && !handleHeight) return;\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !skipResize.current && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n skipResize.current = false;\n });\n };\n\n resizeHandler.current = patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions);\n\n const resizeObserver = new window.ResizeObserver(resizeHandler.current as ResizeObserverCallback);\n\n if (ref.current) {\n // Something wrong with typings here...\n resizeObserver.observe(ref.current as any, observerOptions);\n }\n\n return () => {\n resizeObserver.disconnect();\n const patchedResizeHandler = resizeHandler.current as any;\n if (patchedResizeHandler && patchedResizeHandler.cancel) {\n patchedResizeHandler.cancel();\n }\n };\n }, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);\n\n return { ref, ...size };\n}\n\nexport default useResizeDetector;\n\nexport interface UseResizeDetectorReturn extends ReactResizeDetectorDimensions {\n ref: MutableRefObject;\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 _isEqual from \"lodash/isEqual\";\nimport _isNaN from \"lodash/isNaN\";\nimport _max from \"lodash/max\";\nimport _isFunction from \"lodash/isFunction\";\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\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 Area\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { Global } from '../util/Global';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n _inherits(Area, _PureComponent);\n\n var _super = _createSuper(Area);\n\n function Area() {\n var _this;\n\n _classCallCheck(this, Area);\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: true\n };\n _this.id = uniqueId('recharts-area-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(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 (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n\n var _this$props = this.props,\n dot = _this$props.dot,\n points = _this$props.points,\n dataKey = _this$props.dataKey;\n var areaProps = filterProps(this.props);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps), customDotProps), {}, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload\n });\n\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props2 = this.props,\n baseLine = _this$props2.baseLine,\n points = _this$props2.points,\n strokeWidth = _this$props2.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n\n var maxY = _max(points.map(function (entry) {\n return entry.y || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxY = Math.max(_max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n\n var maxX = _max(points.map(function (entry) {\n return entry.x || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxX = Math.max(_max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n type = _this$props4.type,\n stroke = _this$props4.stroke,\n connectNulls = _this$props4.connectNulls,\n isRange = _this$props4.isRange,\n ref = _this$props4.ref,\n others = _objectWithoutProperties(_this$props4, [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"]);\n\n return /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(others, true), {\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n baseLine = _this$props5.baseLine,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;\n\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: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion\n\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n var stepBaseLine;\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (_isNil(baseLine) || _isNaN(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n }\n\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this2.renderClipRect(t))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points) || !_isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n top = _this$props7.top,\n left = _this$props7.left,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-area', 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: Math.floor(height)\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\n };\n }\n\n if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {\n return {\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine\n };\n }\n\n return null;\n }\n }]);\n\n return Area;\n}(PureComponent);\nArea.displayName = 'Area';\nArea.defaultProps = {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\n\nArea.getBaseValue = function (props, xAxis, yAxis) {\n var layout = props.layout,\n baseValue = props.baseValue;\n\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var max = Math.max(domain[0], domain[1]);\n var min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') {\n return min;\n }\n\n if (baseValue === 'dataMax') {\n return max;\n }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n\n return domain[0];\n};\n\nArea.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n bandSize = _ref2.bandSize,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = Area.getBaseValue(props, xAxis, yAxis);\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var originalValue = getValueByDataKey(entry, dataKey);\n var value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = originalValue;\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n var isBreakPoint = _isNil(value[1]) || hasStack && _isNil(originalValue);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isBreakPoint ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: isBreakPoint ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !_isNil(_get(entry, 'value[0]')) && !_isNil(_get(entry, 'y')) ? yAxis.scale(_get(entry, 'value[0]')) : null\n };\n }\n\n return {\n x: !_isNil(_get(entry, 'value[0]')) ? xAxis.scale(_get(entry, 'value[0]')) : null,\n y: entry.y\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n};\n\nArea.renderDotItem = function (option, props) {\n var dotItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: \"recharts-area-dot\"\n }));\n }\n\n return dotItem;\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\";\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\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var CartesianGrid = /*#__PURE__*/function (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n var _super = _createSuper(CartesianGrid);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n value:\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this.props), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(horizontal, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this2.props), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(vertical, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\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 horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n lineItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, filterProps(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n};","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * @fileOverview Area Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var AreaChart = generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","import _debounce from \"lodash/debounce\";\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 _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 Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport classNames from 'classnames';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect } from 'react';\nimport ReactResizeDetector from 'react-resize-detector/build/withPolyfill';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n minWidth = _ref.minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className;\n\n var _useState = useState({\n containerWidth: -1,\n containerHeight: -1\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n\n var containerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return containerRef;\n }, [containerRef]);\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n mounted = _useState4[0],\n setMounted = _useState4[1];\n\n var getContainerSize = function getContainerSize() {\n if (!containerRef.current) {\n return null;\n }\n\n return {\n containerWidth: containerRef.current.clientWidth,\n containerHeight: containerRef.current.clientHeight\n };\n };\n\n var updateDimensionsImmediate = function updateDimensionsImmediate() {\n if (!mounted) {\n return;\n }\n\n var newSize = getContainerSize();\n\n if (newSize) {\n var oldWidth = sizes.containerWidth,\n oldHeight = sizes.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n setSizes({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n var handleResize = debounce > 0 ? _debounce(updateDimensionsImmediate, debounce) : updateDimensionsImmediate;\n\n var renderChart = function renderChart() {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n };\n\n useEffect(function () {\n if (mounted) {\n var size = getContainerSize();\n\n if (size) {\n setSizes(size);\n }\n }\n }, [mounted]);\n useEffect(function () {\n setMounted(true);\n }, []);\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return /*#__PURE__*/React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: handleResize,\n targetRef: containerRef\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, id != null ? {\n id: \"\".concat(id)\n } : {}, {\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: containerRef\n }), renderChart()));\n});","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["componentWillMount","state","this","constructor","getDerivedStateFromProps","props","undefined","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","TypeError","String","__","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","isObject_1","value","type","freeGlobal","global","freeSelf","self","root","Function","now_1","Date","now","reWhitespace","trimmedEndIndex","string","index","test","charAt","reTrimStart","_baseTrim","slice","replace","_Symbol","Symbol","require$$0","objectProto","nativeObjectToString","toString","symToStringTag","toStringTag","_getRawTag","isOwn","tag","unmasked","result","getRawTag","require$$1","objectToString","baseGetTag","isObjectLike","baseTrim","isObject","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","nativeMax","Math","max","nativeMin","min","debounce_1","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","debounce","throttle_1","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","throttle","isFunction","fn","isSSR","window","isDOMElement","element","Element","HTMLDocument","createNotifier","onResize","setSize","handleWidth","handleHeight","_a","width","height","prev","_super","_this","resizeHandler","targetRef","observerOptions","current","getElement","observableElement","resizeObserver","observe","querySelector","targetDomEl","document","currentElement","findDOMNode","getRenderType","parentElement","entries","_b","_c","notifyResize","forEach","entry","contentRect","skipOnMount","render","children","isValidElement","isArray","createRef","createResizeHandler","window.ResizeObserver","ResizeDetector","attachObserver","disconnect","cancelHandler","typedChildren","WrapperTag","childProps","nativeProps","cloneElement","map","el","React","PureComponent","useEnhancedEffect","useEffect","useLayoutEffect","exports","_typeof","obj","iterator","_objectWithoutProperties","source","excluded","key","target","sourceKeys","keys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_extends","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_setPrototypeOf","o","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","getPrototypeOf","Area","_PureComponent","subClass","superClass","_inherits","protoProps","staticProps","_len","_key","concat","isAnimationFinished","id","uniqueId","handleAnimationEnd","onAnimationEnd","_isFunction","handleAnimationStart","onAnimationStart","animationId","prevAnimationId","curPoints","points","curBaseLine","baseLine","prevPoints","prevBaseLine","needClip","clipPathId","isAnimationActive","_this$props","dot","dataKey","areaProps","filterProps","customDotProps","dots","dotProps","r","cx","x","cy","y","payload","renderDotItem","dotsProps","clipPath","Layer","className","alpha","_this$props2","strokeWidth","startX","endX","abs","maxY","_max","isNumber","_isArray","floor","_this$props3","startY","endY","maxX","layout","renderVerticalRect","renderHorizontalRect","_this$props4","stroke","connectNulls","isRange","others","ref","Curve","fill","_this2","_this$props5","animationBegin","animationDuration","animationEasing","_this$state","Animate","begin","duration","isActive","easing","from","to","_ref","stepBaseLine","prevPointsDiffFactor","stepPoints","prevPointIndex","interpolatorX","interpolateNumber","interpolatorY","interpolator","_isNil","_isNaN","_interpolator","renderAreaStatically","renderClipRect","_this$props6","_this$state2","totalLength","_isEqual","renderAreaWithAnimation","_this$props7","hide","top","left","xAxis","yAxis","hasSinglePoint","layerClass","classNames","allowDataOverflow","renderArea","renderDots","LabelList","defaultProps","fillOpacity","xAxisId","yAxisId","legendType","activeDot","Global","getBaseValue","baseValue","numericAxis","domain","scale","getComposedData","_ref2","xAxisTicks","yAxisTicks","bandSize","stackedData","dataStartIndex","displayedData","offset","hasStack","originalValue","getValueByDataKey","isBreakPoint","getCateCoordinateOfLine","axis","ticks","_get","option","Dot","CartesianGrid","lineItem","x1","y1","x2","y2","horizontalPoints","horizontal","items","renderLineItem","verticalPoints","vertical","verticalFill","verticalPointsUpdated","sort","a","unshift","lineWidth","colorIndex","round","horizontalFill","horizontalPointsUpdated","lineHeight","horizontalCoordinatesGenerator","verticalCoordinatesGenerator","chartWidth","chartHeight","renderBackground","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","XAxis","allowDecimals","orientation","mirror","tickCount","padding","right","reversed","allowDuplicatedCategory","YAxis","bottom","AreaChart","generateCategoricalChart","chartName","GraphicalChild","axisComponents","axisType","AxisComp","formatAxisMap","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","len","arr2","ResponsiveContainer","forwardRef","aspect","_ref$width","_ref$height","minWidth","minHeight","maxHeight","_ref$debounce","_useState2","useState","containerWidth","containerHeight","sizes","setSizes","containerRef","useRef","useImperativeHandle","_useState4","mounted","setMounted","getContainerSize","clientWidth","clientHeight","updateDimensionsImmediate","newSize","oldWidth","oldHeight","handleResize","_debounce","size","style","ReactResizeDetector","warn","isPercent","calculatedWidth","calculatedHeight","renderChart","MapShim","Map","getIndex","some","class_1","__entries__","get","set","delete","splice","has","clear","callback","ctx","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","addEventListener","attributes","childList","characterData","subtree","removeEventListener","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","position","getHTMLElementContentRect","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","method"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/6523.fb65841b.chunk.js b/portal-ui/build/static/js/1373.c65e2a03.chunk.js
similarity index 80%
rename from portal-ui/build/static/js/6523.fb65841b.chunk.js
rename to portal-ui/build/static/js/1373.c65e2a03.chunk.js
index 6817e356d..705cfece9 100644
--- a/portal-ui/build/static/js/6523.fb65841b.chunk.js
+++ b/portal-ui/build/static/js/1373.c65e2a03.chunk.js
@@ -1,2 +1,2 @@
-(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6523],{50908:function(t,r,n){var e=n(68136)(n(97009),"DataView");t.exports=e},78319:function(t,r,n){var e=n(68136)(n(97009),"Promise");t.exports=e},23924:function(t,r,n){var e=n(68136)(n(97009),"Set");t.exports=e},20692:function(t,r,n){var e=n(78059),o=n(35774),u=n(41596);function i(t){var r=-1,n=null==t?0:t.length;for(this.__data__=new e;++rs))return!1;var v=a.get(t),l=a.get(r);if(v&&l)return v==r&&l==t;var b=-1,x=!0,h=2&n?new e:void 0;for(a.set(t,r),a.set(r,t);++b-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991}},19102:function(t,r,n){var e=n(68150),o=n(16194),u=n(49494),i=u&&u.isTypedArray,c=i?o(i):e;t.exports=c},12742:function(t,r,n){var e=n(47538),o=n(43654),u=n(21473);t.exports=function(t){return u(t)?e(t):o(t)}},10038:function(t,r,n){var e=n(9586),o=n(4084),u=n(25823),i=n(69793);t.exports=function(t){return u(t)?e(i(t)):o(t)}},68174:function(t){t.exports=function(){return[]}},49488:function(t){t.exports=function(){return!1}}}]);
-//# sourceMappingURL=6523.fb65841b.chunk.js.map
\ No newline at end of file
+(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1373],{50908:function(t,r,n){var e=n(68136)(n(97009),"DataView");t.exports=e},78319:function(t,r,n){var e=n(68136)(n(97009),"Promise");t.exports=e},23924:function(t,r,n){var e=n(68136)(n(97009),"Set");t.exports=e},20692:function(t,r,n){var e=n(78059),o=n(35774),u=n(41596);function i(t){var r=-1,n=null==t?0:t.length;for(this.__data__=new e;++rs))return!1;var v=a.get(t),l=a.get(r);if(v&&l)return v==r&&l==t;var b=-1,y=!0,h=2&n?new e:void 0;for(a.set(t,r),a.set(r,t);++b-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991}},19102:function(t,r,n){var e=n(68150),o=n(16194),u=n(49494),i=u&&u.isTypedArray,c=i?o(i):e;t.exports=c},12742:function(t,r,n){var e=n(47538),o=n(43654),u=n(21473);t.exports=function(t){return u(t)?e(t):o(t)}},10038:function(t,r,n){var e=n(9586),o=n(4084),u=n(25823),i=n(69793);t.exports=function(t){return u(t)?e(i(t)):o(t)}},68174:function(t){t.exports=function(){return[]}},49488:function(t){t.exports=function(){return!1}},80888:function(t,r,n){"use strict";var e=n(79047);function o(){}function u(){}u.resetWarningCache=o,t.exports=function(){function t(t,r,n,o,u,i){if(i!==e){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function r(){return t}t.isRequired=t;var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:r,element:t,elementType:t,instanceOf:r,node:t,objectOf:r,oneOf:r,oneOfType:r,shape:r,exact:r,checkPropTypes:u,resetWarningCache:o};return n.PropTypes=n,n}},52007:function(t,r,n){t.exports=n(80888)()},79047:function(t){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}}]);
+//# sourceMappingURL=1373.c65e2a03.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1373.c65e2a03.chunk.js.map b/portal-ui/build/static/js/1373.c65e2a03.chunk.js.map
new file mode 100644
index 000000000..da3ba191f
--- /dev/null
+++ b/portal-ui/build/static/js/1373.c65e2a03.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1373.c65e2a03.chunk.js","mappings":"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","sources":["../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/property.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js"],"sourcesContent":["var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` 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 {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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 array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * 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 any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(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 true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` 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|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\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 * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\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 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\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 * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` 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 an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n"],"names":["DataView","require","getNative","module","exports","Promise","Set","MapCache","setCacheAdd","setCacheHas","SetCache","values","index","length","this","__data__","add","prototype","push","has","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","entries","data","size","clear","get","set","Uint8Array","WeakMap","array","predicate","resIndex","result","value","baseTimes","isArguments","isArray","isBuffer","isIndex","isTypedArray","hasOwnProperty","Object","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","key","call","offset","defineProperty","object","baseForOwn","baseEach","createBaseEach","baseFor","createBaseFor","keys","iteratee","arrayPush","keysFunc","symbolsFunc","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","other","bitmask","customizer","stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","source","matchData","noCustomizer","objValue","srcValue","undefined","COMPARE_PARTIAL_FLAG","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","property","isPrototype","nativeKeys","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","toKey","path","baseGet","n","Array","func","cache","isArrayLike","eachFunc","fromRight","collection","iterable","props","e","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","Symbol","eq","mapToArray","setToArray","symbolProto","symbolValueOf","valueOf","tag","byteLength","byteOffset","buffer","name","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","constructor","othCtor","baseGetAllKeys","getSymbols","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","symbol","Map","toSource","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","resolve","Ctor","ctorString","castPath","hasFunc","reIsUint","type","test","objectProto","isObject","map","forEach","overArg","freeGlobal","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","transform","arg","pairs","LARGE_ARRAY_SIZE","baseHasIn","hasPath","baseIsArguments","arguments","isFunction","root","stubFalse","Buffer","baseIsTypedArray","baseUnary","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseProperty","basePropertyDeep","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","Error","getShim","isRequired","ReactPropTypes","bigint","bool","number","string","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1379.405ea3e4.chunk.js b/portal-ui/build/static/js/1379.405ea3e4.chunk.js
new file mode 100644
index 000000000..cdfd58f41
--- /dev/null
+++ b/portal-ui/build/static/js/1379.405ea3e4.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)),i=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,x=e.lblProps,f=void 0===x?{}:x,m=e.valProps,v=void 0===m?{}:m;return(0,i.jsxs)(o.Z,(0,s.Z)((0,s.Z)({direction:{xs:"column",sm:c}},d),{},{children:[(0,i.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:600}},f),{},{children:t})),(0,i.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:500}},v),{},{children:l}))]}))}},51379:function(e,n,t){t.r(n),t.d(n,{default:function(){return S}});var s=t(1413),o=t(72791),i=t(60364),r=t(16871),l=t(11135),a=t(25787),c=t(23814),u=t(61889),d=t(81551),x=t(29439),f=t(27391),m=t(63466),v=t(74900),p=t(40603),j=t(3923),Z=t(92983),h=t(17238),y=t(80184),g=(0,a.Z)((function(e){return(0,l.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))))}))((function(e){var n=e.classes,t=e.setPoolDetailsView,s=(0,d.TL)(),l=(0,r.s0)(),a=(0,i.v9)((function(e){return e.tenants.loadingTenant})),c=(0,i.v9)((function(e){return e.tenants.tenantInfo})),g=(0,o.useState)([]),b=(0,x.Z)(g,2),C=b[0],A=b[1],P=(0,o.useState)(""),N=(0,x.Z)(P,2),F=N[0],T=N[1];(0,o.useEffect)((function(){if(c){var e=c.pools?c.pools:[];A(e)}}),[c]);var k=C.filter((function(e){return!!e.name.toLowerCase().includes(F.toLowerCase())})),R=[{type:"view",onClick:function(e){s((0,h.Lm)(e.name)),t()}}];return(0,y.jsxs)(o.Fragment,{children:[(0,y.jsxs)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,y.jsx)(f.Z,{placeholder:"Filter",className:n.searchField,id:"search-resource",label:"",onChange:function(e){T(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,y.jsx)(m.Z,{position:"start",children:(0,y.jsx)(v.Z,{})})},variant:"standard"}),(0,y.jsx)(p.Z,{tooltip:"Expand Tenant",text:"Expand Tenant",onClick:function(){l("/namespaces/".concat((null===c||void 0===c?void 0:c.namespace)||"","/tenants/").concat((null===c||void 0===c?void 0:c.name)||"","/add-pool"))},icon:(0,y.jsx)(j.dtP,{}),color:"primary",variant:"contained"})]}),(0,y.jsx)(u.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,y.jsx)(Z.Z,{itemActions:R,columns:[{label:"Name",elementKey:"name"},{label:"Capacity",elementKey:"capacity"},{label:"# of Instances",elementKey:"servers"},{label:"# of Drives",elementKey:"volumes"}],isLoading:a,records:k,entityName:"Servers",idField:"name",customEmptyMessage:"No Pools found"})})]})})),b=t(64554),C=t(45902),A=t(45248),P=t(45987),N=t(53767),F=["children"],T=function(e){var n=e.children,t=void 0===n?null:n,o=(0,P.Z)(e,F);return(0,y.jsx)(N.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}))},k={border:"#EAEAEA 1px solid",borderRadius:"3px",padding:"0px 20px",position:"relative"},R={display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2,padding:"15px"},w=function(){var e,n,t,l=(0,r.s0)(),a=(0,i.v9)((function(e){return e.tenants.tenantInfo})),c=(0,i.v9)((function(e){return e.tenants.selectedPool})),d=(null===a||void 0===a?void 0:a.pools.find((function(e){return e.name===c})))||null;if(null===d)return null;var x="None";d.affinity&&(x=d.affinity.nodeAffinity?"Node Selector":"Default (Pod Anti-Affinity)");var f=function(e){var n=e.title;return(0,y.jsx)(T,{sx:{borderBottom:"1px solid #eaeaea",margin:0,marginBottom:"20px"},children:(0,y.jsx)("h3",{children:n})})};return(0,y.jsx)(o.Fragment,{children:(0,y.jsxs)(u.ZP,{item:!0,xs:12,sx:(0,s.Z)({},k),children:[(0,y.jsx)("div",{style:{position:"absolute",right:20,top:18},children:(0,y.jsx)(p.Z,{icon:(0,y.jsx)(j.Jpd,{}),onClick:function(){l("/namespaces/".concat((null===a||void 0===a?void 0:a.namespace)||"","/tenants/").concat((null===a||void 0===a?void 0:a.name)||"","/edit-pool"))},text:"Edit Pool",id:"editPool"})}),(0,y.jsx)(f,{title:"Pool Configuration"}),(0,y.jsxs)(b.Z,{sx:(0,s.Z)({},R),children:[(0,y.jsx)(C.Z,{label:"Pool Name",value:d.name}),(0,y.jsx)(C.Z,{label:"Total Volumes",value:d.volumes}),(0,y.jsx)(C.Z,{label:"Volumes per server",value:d.volumes_per_server}),(0,y.jsx)(C.Z,{label:"Capacity",value:d.capacity})]}),(0,y.jsx)(f,{title:"Resources"}),(0,y.jsxs)(b.Z,{sx:(0,s.Z)({},R),children:[d.resources&&(0,y.jsxs)(o.Fragment,{children:[(0,y.jsx)(C.Z,{label:"CPU",value:d.resources.requests.cpu}),(0,y.jsx)(C.Z,{label:"Memory",value:(0,A.l5)(d.resources.requests.memory)})]}),(0,y.jsx)(C.Z,{label:"Volume Size",value:(0,A.l5)(d.volume_configuration.size)}),(0,y.jsx)(C.Z,{label:"Storage Class Name",value:d.volume_configuration.storage_class_name})]}),d.securityContext&&(d.securityContext.runAsNonRoot||d.securityContext.runAsUser||d.securityContext.runAsGroup||d.securityContext.fsGroup)&&(0,y.jsxs)(o.Fragment,{children:[(0,y.jsx)(f,{title:"Security Context"}),(0,y.jsxs)(b.Z,{children:[null!==d.securityContext.runAsNonRoot&&(0,y.jsx)(b.Z,{sx:(0,s.Z)({},R),children:(0,y.jsx)(C.Z,{label:"Run as Non Root",value:d.securityContext.runAsNonRoot?"Yes":"No"})}),(0,y.jsxs)(b.Z,{sx:(0,s.Z)((0,s.Z)({},R),{},{gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr",md:"1fr 1fr 1fr"}}),children:[d.securityContext.runAsUser&&(0,y.jsx)(C.Z,{label:"Run as User",value:d.securityContext.runAsUser}),d.securityContext.runAsGroup&&(0,y.jsx)(C.Z,{label:"Run as Group",value:d.securityContext.runAsGroup}),d.securityContext.fsGroup&&(0,y.jsx)(C.Z,{label:"FsGroup",value:d.securityContext.fsGroup})]})]})]}),(0,y.jsx)(f,{title:"Affinity"}),(0,y.jsxs)(b.Z,{children:[(0,y.jsxs)(b.Z,{sx:(0,s.Z)({},R),children:[(0,y.jsx)(C.Z,{label:"Type",value:x}),null!==(e=d.affinity)&&void 0!==e&&e.nodeAffinity&&null!==(n=d.affinity)&&void 0!==n&&n.podAntiAffinity?(0,y.jsx)(C.Z,{label:"With Pod Anti affinity",value:"Yes"}):(0,y.jsx)("span",{})]}),(null===(t=d.affinity)||void 0===t?void 0:t.nodeAffinity)&&(0,y.jsxs)(o.Fragment,{children:[(0,y.jsx)(f,{title:"Labels"}),(0,y.jsx)("ul",{children:d.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.map((function(e){return e.matchExpressions.map((function(e){return(0,y.jsxs)("li",{children:[e.key," - ",e.values.join(", ")]})}))}))})]})]}),d.tolerations&&d.tolerations.length>0&&(0,y.jsxs)(o.Fragment,{children:[(0,y.jsx)(f,{title:"Tolerations"}),(0,y.jsx)(b.Z,{children:(0,y.jsx)("ul",{children:d.tolerations.map((function(e){var n,t;return(0,y.jsx)("li",{children:"Equal"===e.operator?(0,y.jsxs)(o.Fragment,{children:["If ",(0,y.jsx)("strong",{children:e.key})," is equal to"," ",(0,y.jsx)("strong",{children:e.value})," then"," ",(0,y.jsx)("strong",{children:e.effect})," after"," ",(0,y.jsx)("strong",{children:(null===(n=e.tolerationSeconds)||void 0===n?void 0:n.seconds)||0})," ","seconds"]}):(0,y.jsxs)(o.Fragment,{children:["If ",(0,y.jsx)("strong",{children:e.key})," exists then"," ",(0,y.jsx)("strong",{children:e.effect})," after"," ",(0,y.jsx)("strong",{children:(null===(t=e.tolerationSeconds)||void 0===t?void 0:t.seconds)||0})," ","seconds"]})})}))})})]})]})})},E=t(84669),S=(0,a.Z)((function(e){return(0,l.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))))}))((function(e){var n=e.classes,t=(0,d.TL)(),s=(0,r.TH)().pathname,l=void 0===s?"":s,a=(0,i.v9)((function(e){return e.tenants.selectedPool})),c=(0,i.v9)((function(e){return e.tenants.poolDetailsOpen}));return(0,y.jsxs)(o.Fragment,{children:[c&&(0,y.jsx)(u.ZP,{item:!0,xs:12,children:(0,y.jsx)(E.Z,{executeOnClick:function(){t((0,h.AH)(!1))},label:"Pools list",to:l})}),(0,y.jsx)("h1",{className:n.sectionTitle,children:c?"Pool Details - ".concat(a||""):"Pools"}),(0,y.jsx)(u.ZP,{container:!0,children:c?(0,y.jsx)(w,{}):(0,y.jsx)(g,{setPoolDetailsView:function(){t((0,h.AH)(!0))}})})]})}))}}]);
+//# sourceMappingURL=1379.405ea3e4.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1379.405ea3e4.chunk.js.map b/portal-ui/build/static/js/1379.405ea3e4.chunk.js.map
new file mode 100644
index 000000000..077ee41f7
--- /dev/null
+++ b/portal-ui/build/static/js/1379.405ea3e4.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1379.405ea3e4.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 {label}\n \n \n {value}\n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { IPool } 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\";\nimport { setSelectedPool } from \"../../../tenantsSlice\";\n\ninterface IPoolsSummary {\n classes: any;\n setPoolDetailsView: () => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...actionsTray,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PoolsListing = ({ classes, setPoolDetailsView }: IPoolsSummary) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const loadingTenant = useSelector(\n (state: AppState) => state.tenants.loadingTenant\n );\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n\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 dispatch(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 navigate(\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\nexport default withStyles(styles)(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 { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AppState } from \"../../../../../../store\";\nimport { Box } from \"@mui/material\";\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\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 = () => {\n const navigate = useNavigate();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const selectedPool = useSelector(\n (state: AppState) => state.tenants.selectedPool\n );\n\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 navigate(\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\nexport default 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 { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport { useLocation } from \"react-router-dom\";\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\";\n\nimport { AppState, useAppDispatch } from \"../../../../store\";\n\nimport PoolsListing from \"./Pools/Details/PoolsListing\";\nimport PoolDetails from \"./Pools/Details/PoolDetails\";\nimport BackLink from \"../../../../common/BackLink\";\nimport { setOpenPoolDetails } from \"../tenantsSlice\";\n\ninterface IPoolsSummary {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...actionsTray,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PoolsSummary = ({ classes }: IPoolsSummary) => {\n const dispatch = useAppDispatch();\n const { pathname = \"\" } = useLocation();\n\n const selectedPool = useSelector(\n (state: AppState) => state.tenants.selectedPool\n );\n const poolDetailsOpen = useSelector(\n (state: AppState) => state.tenants.poolDetailsOpen\n );\n\n return (\n \n {poolDetailsOpen && (\n \n {\n dispatch(setOpenPoolDetails(false));\n }}\n label={\"Pools list\"}\n to={pathname}\n />\n \n )}\n \n {poolDetailsOpen ? `Pool Details - ${selectedPool || \"\"}` : \"Pools\"}\n \n \n {poolDetailsOpen ? (\n \n ) : (\n {\n dispatch(setOpenPoolDetails(true));\n }}\n />\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(PoolsSummary);\n"],"names":["label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","withStyles","theme","createStyles","tenantDetailsStyles","actionsTray","tableStyles","containerForHeader","spacing","classes","setPoolDetailsView","dispatch","useAppDispatch","navigate","useNavigate","loadingTenant","useSelector","state","tenants","tenant","tenantInfo","useState","pools","setPools","filter","setFilter","useEffect","resPools","filteredPools","pool","name","toLowerCase","includes","listActions","type","onClick","selectedValue","setSelectedPool","Fragment","Grid","item","className","TextField","placeholder","searchField","id","onChange","event","target","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","variant","RBIconButton","tooltip","text","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","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","useLocation","pathname","poolDetailsOpen","BackLink","executeOnClick","setOpenPoolDetails","to","sectionTitle","container"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1379.ed19d5b2.chunk.js b/portal-ui/build/static/js/1379.ed19d5b2.chunk.js
deleted file mode 100644
index 74294db0b..000000000
--- a/portal-ui/build/static/js/1379.ed19d5b2.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1379],{45902:function(e,n,t){var s=t(1413),o=(t(72791),t(53767)),i=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,u=void 0===a?"column":a,c=e.stkProps,d=void 0===c?{}:c,x=e.lblProps,f=void 0===x?{}:x,m=e.valProps,p=void 0===m?{}:m;return(0,i.jsxs)(o.Z,(0,s.Z)((0,s.Z)({direction:{xs:"column",sm:u}},d),{},{children:[(0,i.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:600}},f),{},{children:t})),(0,i.jsx)("label",(0,s.Z)((0,s.Z)({style:{marginRight:5,fontWeight:500}},p),{},{children:l}))]}))}},51379:function(e,n,t){t.r(n),t.d(n,{default:function(){return E}});var s=t(1413),o=t(72791),i=t(60364),r=t(11135),l=t(25787),a=t(23814),u=t(61889),c=t(29439),d=t(27391),x=t(63466),f=t(74900),m=t(40603),p=t(51047),v=t(92983),Z=t(17238),j=t(80184),h=(0,l.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},a.oZ),a.OR),a.VX),(0,a.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.history,s=e.setPoolDetailsView,r=(0,i.I0)(),l=(0,i.v9)((function(e){return e.tenants.loadingTenant})),a=(0,i.v9)((function(e){return e.tenants.tenantInfo})),h=(0,o.useState)([]),y=(0,c.Z)(h,2),g=y[0],b=y[1],C=(0,o.useState)(""),A=(0,c.Z)(C,2),P=A[0],N=A[1];(0,o.useEffect)((function(){if(a){var e=a.pools?a.pools:[];b(e)}}),[a]);var F=g.filter((function(e){return!!e.name.toLowerCase().includes(P.toLowerCase())})),k=[{type:"view",onClick:function(e){r((0,Z.Lm)(e.name)),s()}}];return(0,j.jsxs)(o.Fragment,{children:[(0,j.jsxs)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,j.jsx)(d.Z,{placeholder:"Filter",className:n.searchField,id:"search-resource",label:"",onChange:function(e){N(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,j.jsx)(x.Z,{position:"start",children:(0,j.jsx)(f.Z,{})})},variant:"standard"}),(0,j.jsx)(m.Z,{tooltip:"Expand Tenant",text:"Expand Tenant",onClick:function(){t.push("/namespaces/".concat((null===a||void 0===a?void 0:a.namespace)||"","/tenants/").concat((null===a||void 0===a?void 0:a.name)||"","/add-pool"))},icon:(0,j.jsx)(p.dtP,{}),color:"primary",variant:"contained"})]}),(0,j.jsx)(u.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,j.jsx)(v.Z,{itemActions:k,columns:[{label:"Name",elementKey:"name"},{label:"Capacity",elementKey:"capacity"},{label:"# of Instances",elementKey:"servers"},{label:"# of Drives",elementKey:"volumes"}],isLoading:l,records:F,entityName:"Servers",idField:"name",customEmptyMessage:"No Pools found"})})]})})),y=t(64554),g=t(45902),b=t(45248),C=t(45987),A=t(53767),P=["children"],N=function(e){var n=e.children,t=void 0===n?null:n,o=(0,C.Z)(e,P);return(0,j.jsx)(A.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}))},F={border:"#EAEAEA 1px solid",borderRadius:"3px",padding:"0px 20px",position:"relative"},k={display:"grid",gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gap:2,padding:"15px"},R=(0,l.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},a.bK),a.VI),a.oZ),a.VX),(0,a.Bz)(e.spacing(4))))}))((function(e){var n,t,r,l=e.history,a=(0,i.v9)((function(e){return e.tenants.tenantInfo})),c=(0,i.v9)((function(e){return e.tenants.selectedPool})),d=(null===a||void 0===a?void 0:a.pools.find((function(e){return e.name===c})))||null;if(null===d)return null;var x="None";d.affinity&&(x=d.affinity.nodeAffinity?"Node Selector":"Default (Pod Anti-Affinity)");var f=function(e){var n=e.title;return(0,j.jsx)(N,{sx:{borderBottom:"1px solid #eaeaea",margin:0,marginBottom:"20px"},children:(0,j.jsx)("h3",{children:n})})};return(0,j.jsx)(o.Fragment,{children:(0,j.jsxs)(u.ZP,{item:!0,xs:12,sx:(0,s.Z)({},F),children:[(0,j.jsx)("div",{style:{position:"absolute",right:20,top:18},children:(0,j.jsx)(m.Z,{icon:(0,j.jsx)(p.Jpd,{}),onClick:function(){l.push("/namespaces/".concat((null===a||void 0===a?void 0:a.namespace)||"","/tenants/").concat((null===a||void 0===a?void 0:a.name)||"","/edit-pool"))},text:"Edit Pool",id:"editPool"})}),(0,j.jsx)(f,{title:"Pool Configuration"}),(0,j.jsxs)(y.Z,{sx:(0,s.Z)({},k),children:[(0,j.jsx)(g.Z,{label:"Pool Name",value:d.name}),(0,j.jsx)(g.Z,{label:"Total Volumes",value:d.volumes}),(0,j.jsx)(g.Z,{label:"Volumes per server",value:d.volumes_per_server}),(0,j.jsx)(g.Z,{label:"Capacity",value:d.capacity})]}),(0,j.jsx)(f,{title:"Resources"}),(0,j.jsxs)(y.Z,{sx:(0,s.Z)({},k),children:[d.resources&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)(g.Z,{label:"CPU",value:d.resources.requests.cpu}),(0,j.jsx)(g.Z,{label:"Memory",value:(0,b.l5)(d.resources.requests.memory)})]}),(0,j.jsx)(g.Z,{label:"Volume Size",value:(0,b.l5)(d.volume_configuration.size)}),(0,j.jsx)(g.Z,{label:"Storage Class Name",value:d.volume_configuration.storage_class_name})]}),d.securityContext&&(d.securityContext.runAsNonRoot||d.securityContext.runAsUser||d.securityContext.runAsGroup||d.securityContext.fsGroup)&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)(f,{title:"Security Context"}),(0,j.jsxs)(y.Z,{children:[null!==d.securityContext.runAsNonRoot&&(0,j.jsx)(y.Z,{sx:(0,s.Z)({},k),children:(0,j.jsx)(g.Z,{label:"Run as Non Root",value:d.securityContext.runAsNonRoot?"Yes":"No"})}),(0,j.jsxs)(y.Z,{sx:(0,s.Z)((0,s.Z)({},k),{},{gridTemplateColumns:{xs:"1fr",sm:"2fr 1fr",md:"1fr 1fr 1fr"}}),children:[d.securityContext.runAsUser&&(0,j.jsx)(g.Z,{label:"Run as User",value:d.securityContext.runAsUser}),d.securityContext.runAsGroup&&(0,j.jsx)(g.Z,{label:"Run as Group",value:d.securityContext.runAsGroup}),d.securityContext.fsGroup&&(0,j.jsx)(g.Z,{label:"FsGroup",value:d.securityContext.fsGroup})]})]})]}),(0,j.jsx)(f,{title:"Affinity"}),(0,j.jsxs)(y.Z,{children:[(0,j.jsxs)(y.Z,{sx:(0,s.Z)({},k),children:[(0,j.jsx)(g.Z,{label:"Type",value:x}),null!==(n=d.affinity)&&void 0!==n&&n.nodeAffinity&&null!==(t=d.affinity)&&void 0!==t&&t.podAntiAffinity?(0,j.jsx)(g.Z,{label:"With Pod Anti affinity",value:"Yes"}):(0,j.jsx)("span",{})]}),(null===(r=d.affinity)||void 0===r?void 0:r.nodeAffinity)&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)(f,{title:"Labels"}),(0,j.jsx)("ul",{children:d.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.map((function(e){return e.matchExpressions.map((function(e){return(0,j.jsxs)("li",{children:[e.key," - ",e.values.join(", ")]})}))}))})]})]}),d.tolerations&&d.tolerations.length>0&&(0,j.jsxs)(o.Fragment,{children:[(0,j.jsx)(f,{title:"Tolerations"}),(0,j.jsx)(y.Z,{children:(0,j.jsx)("ul",{children:d.tolerations.map((function(e){var n,t;return(0,j.jsx)("li",{children:"Equal"===e.operator?(0,j.jsxs)(o.Fragment,{children:["If ",(0,j.jsx)("strong",{children:e.key})," is equal to"," ",(0,j.jsx)("strong",{children:e.value})," then"," ",(0,j.jsx)("strong",{children:e.effect})," after"," ",(0,j.jsx)("strong",{children:(null===(n=e.tolerationSeconds)||void 0===n?void 0:n.seconds)||0})," ","seconds"]}):(0,j.jsxs)(o.Fragment,{children:["If ",(0,j.jsx)("strong",{children:e.key})," exists then"," ",(0,j.jsx)("strong",{children:e.effect})," after"," ",(0,j.jsx)("strong",{children:(null===(t=e.tolerationSeconds)||void 0===t?void 0:t.seconds)||0})," ","seconds"]})})}))})})]})]})})})),w=t(84669),E=(0,l.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},a.oZ),a.OR),a.VX),(0,a.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.history,s=e.match,r=(0,i.I0)(),l=(0,i.v9)((function(e){return e.tenants.selectedPool})),a=(0,i.v9)((function(e){return e.tenants.poolDetailsOpen}));return(0,j.jsxs)(o.Fragment,{children:[a&&(0,j.jsx)(u.ZP,{item:!0,xs:12,children:(0,j.jsx)(w.Z,{executeOnClick:function(){r((0,Z.AH)(!1))},label:"Pools list",to:s.url})}),(0,j.jsx)("h1",{className:n.sectionTitle,children:a?"Pool Details - ".concat(l||""):"Pools"}),(0,j.jsx)(u.ZP,{container:!0,children:a?(0,j.jsx)(R,{history:t}):(0,j.jsx)(h,{setPoolDetailsView:function(){r((0,Z.AH)(!0))},history:t})})]})}))}}]);
-//# sourceMappingURL=1379.ed19d5b2.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1379.ed19d5b2.chunk.js.map b/portal-ui/build/static/js/1379.ed19d5b2.chunk.js.map
deleted file mode 100644
index 7a6b2a83f..000000000
--- a/portal-ui/build/static/js/1379.ed19d5b2.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1379.ed19d5b2.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 {label}\n \n \n {value}\n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../../store\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { IPool } 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\";\nimport { setSelectedPool } from \"../../../tenantsSlice\";\n\ninterface IPoolsSummary {\n classes: any;\n history: any;\n setPoolDetailsView: () => void;\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 history,\n setPoolDetailsView,\n}: IPoolsSummary) => {\n const dispatch = useDispatch();\n\n const loadingTenant = useSelector(\n (state: AppState) => state.tenants.loadingTenant\n );\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n\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 dispatch(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\nexport default withStyles(styles)(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 { useSelector } 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\";\n\nimport { AppState } from \"../../../../../../store\";\nimport { Box } from \"@mui/material\";\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}\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 = ({ history }: IPoolDetails) => {\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const selectedPool = useSelector(\n (state: AppState) => state.tenants.selectedPool\n );\n\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\nexport default withStyles(styles)(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 { useDispatch, useSelector } 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\";\n\nimport { AppState } from \"../../../../store\";\n\nimport PoolsListing from \"./Pools/Details/PoolsListing\";\nimport PoolDetails from \"./Pools/Details/PoolDetails\";\nimport BackLink from \"../../../../common/BackLink\";\nimport { setOpenPoolDetails } from \"../tenantsSlice\";\n\ninterface IPoolsSummary {\n classes: any;\n history: any;\n match: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...actionsTray,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PoolsSummary = ({ classes, history, match }: IPoolsSummary) => {\n const dispatch = useDispatch();\n\n const selectedPool = useSelector(\n (state: AppState) => state.tenants.selectedPool\n );\n const poolDetailsOpen = useSelector(\n (state: AppState) => state.tenants.poolDetailsOpen\n );\n\n return (\n \n {poolDetailsOpen && (\n \n {\n dispatch(setOpenPoolDetails(false));\n }}\n label={\"Pools list\"}\n to={match.url}\n />\n \n )}\n \n {poolDetailsOpen ? `Pool Details - ${selectedPool || \"\"}` : \"Pools\"}\n \n \n {poolDetailsOpen ? (\n \n ) : (\n {\n dispatch(setOpenPoolDetails(true));\n }}\n history={history}\n />\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(PoolsSummary);\n"],"names":["label","value","orientation","stkProps","lblProps","valProps","direction","xs","sm","style","marginRight","fontWeight","withStyles","theme","createStyles","tenantDetailsStyles","actionsTray","tableStyles","containerForHeader","spacing","classes","history","setPoolDetailsView","dispatch","useDispatch","loadingTenant","useSelector","state","tenants","tenant","tenantInfo","useState","pools","setPools","filter","setFilter","useEffect","resPools","filteredPools","pool","name","toLowerCase","includes","listActions","type","onClick","selectedValue","setSelectedPool","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","spacingUtils","textStyleUtils","selectedPool","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","match","poolDetailsOpen","BackLink","executeOnClick","setOpenPoolDetails","to","url","sectionTitle","container"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1395.f8a4acb9.chunk.js b/portal-ui/build/static/js/1395.f8a4acb9.chunk.js
deleted file mode 100644
index 108e7ad7f..000000000
--- a/portal-ui/build/static/js/1395.f8a4acb9.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1395,3956],{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(9505),l=t(2148),u=t(51047),d=t(45248),h=t(87995),f=t(80184);n.default=(0,o.Z)((function(e){return(0,i.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}})}))((function(e){var n=e.classes,t=e.closeDeleteModalAndRefresh,i=e.deleteOpen,o=e.selectedServiceAccount,m=(0,r.I0)(),x=(0,c.Z)((function(){return t(!0)}),(function(e){return m((0,h.Ih)(e))})),p=(0,s.Z)(x,2),Z=p[0],g=p[1];if(!o)return null;return(0,f.jsx)(l.Z,{title:"Delete Service Account",confirmText:"Delete",isOpen:i,titleIcon:(0,f.jsx)(u.NvT,{}),isLoading:Z,onConfirm:function(){g("DELETE","/api/v1/service-accounts/".concat((0,d.LL)(o)))},onClose:function(){return t(!1)},confirmationContent:(0,f.jsxs)(a.Z,{children:["Are you sure you want to delete service account"," ",(0,f.jsx)("b",{className:n.wrapText,children:o}),"?"]})})}))},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),f=t(85531),m=t(78029),x=t.n(m),p=t(51047),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)(f.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,g.jsx)(p.TIy,{})})})})})})]})})),v=t(89357),y=t(40603),b=function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+n),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},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"}})}))((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.tVY,{}),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})]})]})}),(null===d||void 0===d)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(j,{label:"Access Key",value:t.accessKey||""}),(0,g.jsx)(j,{label:"Secret Key",value:t.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"}:e={url:t.url,accessKey:t.accessKey,secretKey:t.secretKey,api:"s3v4",path:"auto"};b("credentials.json",JSON.stringify((0,s.Z)({},e)))},icon:(0,g.jsx)(p._8t,{}),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._8t,{}),variant:"contained",color:"primary"})]})})]})})}))},25739:function(e,n,t){t(72791);var s=t(64554),r=t(50896),i=t(80184);n.Z=function(e){var n=e.children,t=e.title,o=e.helpbox,a=e.icon;return(0,i.jsxs)(s.Z,{sx:{display:"grid",padding:"25px",gap:"25px",gridTemplateColumns:{md:"2fr 1.2fr",xs:"1fr"},border:"1px solid #eaeaea"},children:[(0,i.jsxs)(s.Z,{children:[(0,i.jsx)(r.Z,{icon:a,children:t}),n]}),o]})}},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})}))},50276:function(e,n,t){var s=t(1413),r=t(29439),i=t(72791),o=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),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=i.useState(f),v=(0,r.Z)(j,2),y=v[0],b=v[1],S=(0,h.Z)(),A=(0,m.Z)(S.breakpoints.down("md")),C=[],w=[];return n?(n.forEach((function(e){C.push(e.tabConfig),w.push(e.content)})),(0,x.jsx)(c.ZP,{value:"".concat(y),children:(0,x.jsxs)(o.Z,{className:t.tabsContainer,children:[(0,x.jsx)(o.Z,{className:t.tabsHeaderContainer,children:(0,x.jsx)(l.Z,{onChange:function(e,n){b(n)},orientation:A?"horizontal":"vertical",variant:A?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:C.map((function(e,n){return e?(0,x.jsx)(a.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:w.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}))},16502: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)({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,s=e.title;return(0,i.jsxs)("div",{className:n.headerContainer,children:[(0,i.jsx)("h4",{className:n.labelHeadline,children:s}),(0,i.jsx)("div",{className:n.labelText,children:t})]})}))},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),f=t(23814),m=t(81207),x=t(92983),p=t(59114),Z=t(87995),g=t(80184);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)({},f.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},f.qg),f.VX),f.OR),f.jY))}))((function(e){var n=e.classes,t=e.selectedPolicy,i=void 0===t?[]:t,c=e.setSelectedPolicy,l=(0,a.I0)(),f=(0,o.useState)([]),j=(0,r.Z)(f,2),v=j[0],y=j[1],b=(0,o.useState)(!1),S=(0,r.Z)(b,2),A=S[0],C=S[1],w=(0,o.useState)(""),P=(0,r.Z)(w,2),N=P[0],E=P[1],k=(0,o.useCallback)((function(){C(!0),m.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;C(!1),y(n.sort(h.g4))})).catch((function(e){C(!1),l((0,Z.zb)(e))}))}),[l]);(0,o.useEffect)((function(){C(!0)}),[]),(0,o.useEffect)((function(){A&&k()}),[A,k]);var F=v.filter((function(e){return e.name.includes(N)}));return(0,g.jsx)(o.Fragment,{children:(0,g.jsxs)(d.ZP,{item:!0,xs:12,children:[A&&(0,g.jsx)(u.Z,{}),v.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)(p.Z,{placeholder:"Start typing to search for a Policy",onChange:function(e){E(e)},value:N})})]}),(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,o=(0,s.Z)(i);r?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),c(o)},selectedItems:i,isLoading:A,records:F,entityName:"Policies",idField:"name",customPaperHeight:n.multiSelectTable})})]}):(0,g.jsx)("div",{className:n.noFound,children:"No Policies Available"})]})})}))},49076:function(e,n,t){t.r(n);var s=t(37762),r=t(29439),i=t(72791),o=t(60364),a=t(51691),c=t(87995),l=t(9505),u=t(2148),d=t(51047),h=t(45248),f=t(16502),m=t(92983),x=t(81207),p=t(56087),Z=t(72401),g=t(80184),j={setErrorSnackMessage:c.Ih},v=(0,o.$j)(null,j);n.default=v((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,o=e.selectedUsers,c=e.setErrorSnackMessage,j=e.history,v=function(){return n(!1)},y=(0,l.Z)((function(){return n(!0)}),(function(e){return c(e)})),b=(0,r.Z)(y,2),S=b[0],A=b[1],C=(0,i.useState)(!0),w=(0,r.Z)(C,2),P=w[0],N=w[1],E=(0,i.useState)(!1),k=(0,r.Z)(E,2),F=k[0],I=k[1],T=(0,i.useState)([]),R=(0,r.Z)(T,2),M=R[0],D=R[1],L=localStorage.getItem("userLoggedIn")||"";if((0,i.useEffect)((function(){o&&x.Z.invoke("POST","/api/v1/users/service-accounts",o).then((function(e){D(e.userServiceAccountList),e.hasSA&&I(!0),N(!1)})).catch((function(e){c(e),N(!1)}))}),[o,c]),!o)return null;var U=o.map((function(e){return(0,g.jsx)("div",{children:(0,g.jsx)("b",{children:e})},e)})),O=[{type:"view",onClick:function(e){j.push("".concat(p.gA.USERS,"/").concat((0,h.LL)(e.userName))),v()}}],B="Are you sure you want to delete the following "+o.length+" user"+(o.length>1?"s?":"?");return P?(0,g.jsx)(Z.Z,{}):(0,g.jsx)(u.Z,{title:"Delete User".concat(o.length>1?"s":""),confirmText:"Delete",isOpen:t,titleIcon:(0,g.jsx)(d.NvT,{}),isLoading:S,onConfirm:function(){var e,t=(0,s.Z)(o);try{for(t.s();!(e=t.n()).done;){var r=e.value;r===L?(c({errorMessage:"Cannot delete currently logged in user",detailedError:"Cannot delete currently logged in user ".concat(L)}),n(!0)):(A("DELETE","/api/v1/user/".concat((0,h.LL)(r))),n(!0),j.push("".concat(p.gA.USERS)))}}catch(i){t.e(i)}finally{t.f()}},onClose:v,confirmationContent:(0,g.jsx)(a.Z,{children:F?(0,g.jsxs)(i.Fragment,{children:[(0,g.jsx)(f.Z,{label:"Click on a user to view the full listing of asociated Service Accounts. All Service Accounts associated with a user will be deleted along with the user. Are you sure you want to continue?",title:"Warning: One or more users selected has associated Service Accounts. "}),(0,g.jsx)(m.Z,{itemActions:O,columns:[{label:"Username",elementKey:"userName"},{label:"# Associated Service Accounts",elementKey:"numSAs"}],isLoading:P,records:M,entityName:"User Service Accounts",idField:"userName",customPaperHeight:"250"})]}):(0,g.jsxs)(i.Fragment,{children:[B,U]})})})}))},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),f=t(61889),m=t(21639),x=t(23814),p=t(81207),Z=t(92983),g=t(59114),j=t(87995),v=t(80184);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))}))((function(e){var n=e.classes,t=e.selectedGroups,i=e.setSelectedGroups,c=(0,a.I0)(),l=(0,o.useState)([]),d=(0,r.Z)(l,2),x=d[0],y=d[1],b=(0,o.useState)(!1),S=(0,r.Z)(b,2),A=S[0],C=S[1],w=(0,o.useState)(""),P=(0,r.Z)(w,2),N=P[0],E=P[1],k=(0,o.useCallback)((function(){p.Z.invoke("GET","/api/v1/groups").then((function(e){var n=h()(e,"groups",[]);n||(n=[]),y(n.sort(m.V2)),C(!1)})).catch((function(e){c((0,j.zb)(e)),C(!1)}))}),[c]);(0,o.useEffect)((function(){C(!0)}),[]),(0,o.useEffect)((function(){A&&k()}),[A,k]);var F=t||[],I=x.filter((function(e){return e.includes(N)}));return(0,v.jsx)(o.Fragment,{children:(0,v.jsxs)(f.ZP,{item:!0,xs:12,children:[A&&(0,v.jsx)(u.Z,{}),null!==x&&x.length>0?(0,v.jsxs)(o.Fragment,{children:[(0,v.jsxs)(f.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)(g.Z,{placeholder:"Start typing to search for Groups",adornmentPosition:"end",onChange:E,value:N})})]}),(0,v.jsx)(f.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,v.jsx)(Z.Z,{columns:[{label:"Group",elementKey:""}],onSelect:function(e){var n=e.target,t=n.value,r=n.checked,o=(0,s.Z)(F);return r?o.push(t):o=o.filter((function(e){return e!==t})),i(o),o},selectedItems:F,isLoading:A,records:I,entityName:"Groups",idField:"",customPaperHeight:n.multiSelectTable})})]}):(0,v.jsx)("div",{className:n.noFound,children:"No Groups Available"})]})})}))},70665:function(e,n,t){t.r(n),t.d(n,{default:function(){return he}});var s=t(72791),r=t(62666),i=t(79271),o=t(50099),a=t(93433),c=t(29439),l=t(1413),u=t(60364),d=t(11135),h=t(25787),f=t(81207),m=t(61889),x=t(40986),p=t(21639),Z=t(51047),g=t(23814),j=t(92983),v=t(32291),y=t(45248),b=t(23804),S=t(81806),A=t(74794),C=t(59114),w=t(75578),P=t(56087),N=t(40603),E=t(38442),k=t(87995),F=t(80184),I=(0,w.Z)(s.lazy((function(){return Promise.resolve().then(t.bind(t,49076))}))),T=(0,w.Z)(s.lazy((function(){return t.e(9221).then(t.bind(t,49221))}))),R=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},g.OR),g.qg),{},{searchField:(0,l.Z)((0,l.Z)({},g.qg.searchField),{},{marginRight:"auto",maxWidth:380})},g.VX),(0,g.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.history,r=(0,u.I0)(),i=(0,s.useState)([]),o=(0,c.Z)(i,2),l=o[0],d=o[1],h=(0,s.useState)(!0),g=(0,c.Z)(h,2),w=g[0],R=g[1],M=(0,s.useState)(!1),D=(0,c.Z)(M,2),L=D[0],U=D[1],O=(0,s.useState)(!1),B=(0,c.Z)(O,2),_=B[0],K=B[1],z=(0,s.useState)(""),G=(0,c.Z)(z,2),V=G[0],W=G[1],H=(0,s.useState)([]),q=(0,c.Z)(H,2),X=q[0],J=q[1],Q=(0,E.F)(P.C3,[P.Ft.ADMIN_LIST_USERS]),Y=(0,E.F)(P.C3,[P.Ft.ADMIN_GET_USER]),$=(0,E.F)(P.C3,[P.Ft.ADMIN_ADD_USER_TO_GROUP]),ee=(0,E.F)(P.C3,[P.Ft.ADMIN_DELETE_USER]);(0,s.useEffect)((function(){w&&(Q?f.Z.invoke("GET","/api/v1/users").then((function(e){var n=null===e.users?[]:e.users;R(!1),d(n.sort(p.LQ))})).catch((function(e){R(!1),r((0,k.Ih)(e))})):R(!1))}),[w,r,Q]);var ne=l.filter((function(e){return e.accessKey.includes(V)})),te=function(e){t.push("".concat(P.gA.USERS,"/").concat((0,y.LL)(e.accessKey)))},se=[{type:"view",onClick:te,disableButtonFunction:function(){return!Y}},{type:"edit",onClick:te,disableButtonFunction:function(){return!Y}}];return(0,F.jsxs)(s.Fragment,{children:[L&&(0,F.jsx)(I,{deleteOpen:L,selectedUsers:X,closeDeleteModalAndRefresh:function(e){!function(e){U(!1),e&&R(!0),J([])}(e)},history:t}),_&&(0,F.jsx)(T,{open:_,checkedUsers:X,closeModalAndRefresh:function(e){!function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];K(!1),e&&J([])}(e)}}),(0,F.jsx)(v.Z,{label:"Users"}),(0,F.jsxs)(A.Z,{children:[(0,F.jsxs)(m.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,F.jsx)(C.Z,{placeholder:"Search Users",onChange:W,overrideClass:n.searchField,value:V}),(0,F.jsx)(E.s,{resource:P.C3,scopes:[P.Ft.ADMIN_DELETE_USER],matchAll:!0,errorProps:{disabled:!0},children:(0,F.jsx)(N.Z,{tooltip:"Delete Selected",onClick:function(){U(!0)},text:"Delete Selected",icon:(0,F.jsx)(Z.pJl,{}),color:"secondary",disabled:0===X.length,variant:"outlined","aria-label":"delete-selected-users"})}),(0,F.jsx)(E.s,{scopes:[P.Ft.ADMIN_ADD_USER_TO_GROUP],resource:P.C3,errorProps:{disabled:!0},children:(0,F.jsx)(N.Z,{tooltip:"Add to Group",text:"Add to Group",icon:(0,F.jsx)(Z.wws,{}),color:"primary",disabled:X.length<=0,onClick:function(){X.length>0&&K(!0)},variant:"outlined"})}),(0,F.jsx)(E.s,{scopes:[P.Ft.ADMIN_CREATE_USER,P.Ft.ADMIN_LIST_USER_POLICIES,P.Ft.ADMIN_LIST_GROUPS],resource:P.HQ,matchAll:!0,errorProps:{disabled:!0},children:(0,F.jsx)(N.Z,{tooltip:"Create User",text:"Create User",icon:(0,F.jsx)(Z.dtP,{}),color:"primary",onClick:function(){t.push("".concat(P.gA.USER_ADD))},variant:"contained"})})]}),w&&(0,F.jsx)(x.Z,{}),!w&&(0,F.jsxs)(s.Fragment,{children:[l.length>0&&(0,F.jsxs)(s.Fragment,{children:[(0,F.jsx)(m.ZP,{item:!0,xs:12,className:n.tableBlock,marginBottom:"15px",children:(0,F.jsx)(E.s,{scopes:[P.Ft.ADMIN_LIST_USERS],resource:P.C3,errorProps:{disabled:!0},children:(0,F.jsx)(j.Z,{itemActions:se,columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:$||ee?function(e){var n=e.target,t=(n=void 0===n?{}:n).value,s=void 0===t?"":t,r=n.checked,i=void 0!==r&&r,o=(0,a.Z)(X);return i?o.push(s):o=o.filter((function(e){return e!==s})),J(o),o}:void 0,selectedItems:X,isLoading:w,records:ne,entityName:"Users",idField:"accessKey"})})}),(0,F.jsx)(b.Z,{title:"Users",iconComponent:(0,F.jsx)(Z.oyc,{}),help:(0,F.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,F.jsx)("br",{}),"Groups provide a simplified method for managing shared permissions among users with common access patterns and workloads.",(0,F.jsx)("br",{}),(0,F.jsx)("br",{}),"Users inherit access permissions to data and resources through the groups they belong to.",(0,F.jsx)("br",{}),"MinIO uses Policy-Based Access Control (PBAC) to define the authorized actions and resources to which an authenticated user has access. Each policy describes one or more actions and conditions that outline the permissions of a user or group of users.",(0,F.jsx)("br",{}),(0,F.jsx)("br",{}),"Each user can access only those resources and operations which are explicitly granted by the built-in role. MinIO denies access to any other resource or action by default.",(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/user-management.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})]}),0===l.length&&(0,F.jsx)(m.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"start",children:(0,F.jsx)(m.ZP,{item:!0,xs:8,children:(0,F.jsx)(b.Z,{title:"Users",iconComponent:(0,F.jsx)(Z.oyc,{}),help:(0,F.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,F.jsx)("br",{}),"Groups provide a simplified method for managing shared permissions among users with common access patterns and workloads.",(0,F.jsx)("br",{}),(0,F.jsx)("br",{}),"Users inherit access permissions to data and resources through the groups they belong to.",(0,F.jsx)("br",{}),"MinIO uses Policy-Based Access Control (PBAC) to define the authorized actions and resources to which an authenticated user has access. Each policy describes one or more actions and conditions that outline the permissions of a user or group of users.",(0,F.jsx)("br",{}),(0,F.jsx)("br",{}),"Each user can access only those resources and operations which are explicitly granted by the built-in role. MinIO denies access to any other resource or action by default.",(0,F.jsxs)(E.s,{scopes:[P.Ft.ADMIN_CREATE_USER,P.Ft.ADMIN_LIST_USER_POLICIES,P.Ft.ADMIN_LIST_GROUPS],matchAll:!0,resource:P.C3,children:[(0,F.jsx)("br",{}),(0,F.jsx)("br",{}),"To get started,"," ",(0,F.jsx)(S.Z,{onClick:function(){t.push("".concat(P.gA.USER_ADD))},children:"Create a User"}),"."]})]})})})})]})]})]})})),M=t(37762),D=t(36151),L=t(83658),U=t(56028),O=t(54163),B=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)({buttonContainer:{textAlign:"right"}},g.bK),g.oO))}))((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedUser,i=e.open,o=(0,u.I0)(),a=(0,s.useState)(!1),l=(0,c.Z)(a,2),d=l[0],h=l[1],p=(0,s.useState)(""),Z=(0,c.Z)(p,2),g=Z[0],j=Z[1],v=(0,s.useState)(""),b=(0,c.Z)(v,2),S=b[0],A=b[1],C=(0,s.useState)(!1),w=(0,c.Z)(C,2),P=w[0],N=w[1],E=(0,s.useState)([]),I=(0,c.Z)(E,2),T=I[0],R=I[1],M=(0,s.useCallback)((function(){if(!r)return null;f.Z.invoke("GET","/api/v1/user/".concat((0,y.LL)(r))).then((function(e){h(!1),j(e.accessKey),R(e.memberOf||[]),N("enabled"===e.status)})).catch((function(e){h(!1),o((0,k.zb)(e))}))}),[r,o]);(0,s.useEffect)((function(){null===r?(j(""),A(""),R([])):M()}),[r,M]);var B=""!==g.trim()&&(""!==S.trim()&&null===r||null!==r);return(0,F.jsx)(U.Z,{onClose:function(){t()},modalOpen:i,title:"Set Groups",titleIcon:(0,F.jsx)(O.Z,{}),children:(0,F.jsx)(s.Fragment,{children:(0,F.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),d||(h(!0),null!==r?f.Z.invoke("PUT","/api/v1/user/".concat((0,y.LL)(r)),{status:P?"enabled":"disabled",groups:T}).then((function(e){h(!1),t()})).catch((function(e){h(!1),o((0,k.zb)(e))})):f.Z.invoke("POST","/api/v1/users",{accessKey:g,secretKey:S,groups:T}).then((function(e){h(!1),t()})).catch((function(e){h(!1),o((0,k.zb)(e))})))},children:(0,F.jsxs)(m.ZP,{container:!0,children:[(0,F.jsx)(m.ZP,{item:!0,xs:12,className:n.formScrollable,children:(0,F.jsx)(L.Z,{selectedGroups:T,setSelectedGroups:function(e){R(e)}})}),(0,F.jsxs)(m.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,F.jsx)(D.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){null===r?(j(""),A(""),R([])):R([])},children:"Clear"}),(0,F.jsx)(D.Z,{type:"submit",variant:"contained",color:"primary",disabled:d||!B,children:"Save"})]}),d&&(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(x.Z,{})})]})})})})})),_=t(58400),K=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)({},g.oO),{},{buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedUser,i=e.currentPolicies,o=e.open,a=(0,u.I0)(),l=(0,s.useState)(!1),d=(0,c.Z)(l,2),h=d[0],p=d[1],Z=(0,s.useState)([]),g=(0,c.Z)(Z,2),j=g[0],v=g[1],y=(0,s.useState)([]),b=(0,c.Z)(y,2),S=b[0],A=b[1];return(0,s.useEffect)((function(){if(o){var e,n=[],t=(0,M.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()}v(n),A(n)}}),[o,r]),(0,F.jsxs)(U.Z,{onClose:function(){t()},modalOpen:o,title:"Set Policies",children:[(0,F.jsx)(m.ZP,{container:!0,children:(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(_.Z,{selectedPolicy:S,setSelectedPolicy:A})})}),(0,F.jsxs)(m.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,F.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){A(j)},children:"Reset"}),(0,F.jsx)(D.Z,{type:"button",variant:"contained",color:"primary",disabled:h,onClick:function(){var e=r;p(!0),f.Z.invoke("PUT","/api/v1/set-policy",{name:S,entityName:e,entityType:"user"}).then((function(){p(!1),t()})).catch((function(e){p(!1),a((0,k.zb)(e))}))},children:"Save"})]}),h&&(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(x.Z,{})})]})})),z=t(64554),G=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)({},g.bl),g.ID))}))((function(e){e.classes,e.open,e.closeModalAndRefresh,e.user;return(0,F.jsx)(s.Fragment,{children:"zxzzzz"})})),V=t(23956),W=t(37798),H=t(60680),q=t(18303),X=t(58493),J=t(14048),Q=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},g.qg),g.OR),{},{actionsTray:(0,l.Z)({},g.OR.actionsTray)},g.VX))}))((function(e){var n=e.classes,t=e.user,r=e.hasPolicy,i=e.history,o=(0,u.I0)(),a=(0,s.useState)([]),l=(0,c.Z)(a,2),d=l[0],h=l[1],m=(0,s.useState)(!1),x=(0,c.Z)(m,2),g=x[0],v=x[1],b=(0,s.useState)(!1),S=(0,c.Z)(b,2),A=S[0],C=S[1],w=(0,s.useState)(!1),I=(0,c.Z)(w,2),T=I[0],R=I[1],M=(0,s.useState)(null),D=(0,c.Z)(M,2),L=D[0],U=D[1],O=(0,s.useState)(!1),B=(0,c.Z)(O,2),_=B[0],K=B[1],Q=(0,s.useState)(null),Y=(0,c.Z)(Q,2),$=Y[0],ee=Y[1],ne=(0,s.useState)([]),te=(0,c.Z)(ne,2),se=te[0],re=te[1],ie=(0,s.useState)(!1),oe=(0,c.Z)(ie,2),ae=oe[0],ce=oe[1],le=(0,s.useState)(!1),ue=(0,c.Z)(le,2),de=ue[0],he=ue[1];(0,s.useEffect)((function(){fe()}),[]),(0,s.useEffect)((function(){g&&f.Z.invoke("GET","/api/v1/user/".concat((0,y.LL)(t),"/service-accounts")).then((function(e){var n=e.sort(p.V2);v(!1),h(n)})).catch((function(e){o((0,k.Ih)(e)),v(!1)}))}),[g,v,h,t,o]);var fe=function(){v(!0)},me=[{type:"view",onClick:function(e){U(e),he(!0)}},{type:"delete",onClick:function(e){U(e),R(!0)}}];return(0,F.jsxs)(s.Fragment,{children:[A&&(0,F.jsx)(G,{open:A,closeModalAndRefresh:function(e){!function(e){if(C(!1),fe(),null!==e){var n={console:{accessKey:"".concat(e.accessKey),secretKey:"".concat(e.secretKey),url:"".concat(e.url)}};ee(n),K(!0)}}(e)},user:t}),T&&(0,F.jsx)(V.default,{deleteOpen:T,selectedServiceAccount:L,closeDeleteModalAndRefresh:function(e){!function(e){R(!1),e&&fe()}(e)}}),ae&&(0,F.jsx)(q.Z,{deleteOpen:ae,selectedSAs:se,closeDeleteModalAndRefresh:function(e){ce(!1),e&&(o((0,k.y1)("Service accounts deleted successfully.")),re([]),v(!0))}}),_&&(0,F.jsx)(W.default,{newServiceAccount:$,open:_,closeModal:function(){K(!1),ee(null)},entity:"Service Account"}),de&&(0,F.jsx)(J.Z,{open:de,selectedAccessKey:L,closeModalAndRefresh:function(){he(!1),v(!0)}}),(0,F.jsxs)("div",{className:n.actionsTray,children:[(0,F.jsx)(H.Z,{children:"Service Accounts"}),(0,F.jsxs)(z.Z,{children:[(0,F.jsx)(N.Z,{tooltip:"Delete Selected",onClick:function(){ce(!0)},text:"Delete Selected",icon:(0,F.jsx)(Z.pJl,{}),color:"secondary",disabled:0===se.length,variant:"outlined"}),(0,F.jsx)(E.s,{scopes:[P.Ft.ADMIN_CREATE_SERVICEACCOUNT,P.Ft.ADMIN_UPDATE_SERVICEACCOUNT,P.Ft.ADMIN_REMOVE_SERVICEACCOUNT,P.Ft.ADMIN_LIST_SERVICEACCOUNTS],resource:P.C3,matchAll:!0,errorProps:{disabled:!0},children:(0,F.jsx)(N.Z,{tooltip:"Create service account",text:"Create service account",variant:"contained",color:"primary",icon:(0,F.jsx)(Z.dtP,{}),onClick:function(){i.push("/identity/users/new-user-sa/".concat((0,y.LL)(t)))},disabled:!r})})]})]}),(0,F.jsx)("div",{className:n.tableBlock,children:(0,F.jsx)(j.Z,{isLoading:g,records:d,entityName:"Service Accounts",idField:"",columns:[{label:"Service Account",elementKey:""}],itemActions:me,selectedItems:se,onSelect:function(e){return(0,X._0)(e,re,se)},onSelectAll:function(){se.length!==d.length?re(d):re([])}})})]})})),Y=t(21435),$=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)((0,l.Z)((0,l.Z)({buttonContainer:{textAlign:"right"}},g.ID),g.DF),g.bK),(0,g.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.open,r=e.userName,i=e.closeModal,o=(0,u.I0)(),a=(0,s.useState)(""),l=(0,c.Z)(a,2),d=l[0],h=l[1],p=(0,s.useState)(""),g=(0,c.Z)(p,2),j=g[0],v=g[1],y=(0,s.useState)(!1),b=(0,c.Z)(y,2),S=b[0],A=b[1];return t?(0,F.jsx)(U.Z,{title:"Change User Password",modalOpen:t,onClose:function(){h(""),v(""),i()},titleIcon:(0,F.jsx)(Z.IaT,{}),children:(0,F.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),!S){if(A(!0),d.length<8)return o((0,k.zb)({errorMessage:"Passwords must be at least 8 characters long",detailedError:""})),void A(!1);var n={selectedUser:r,newSecretKey:d};f.Z.invoke("POST","/api/v1/account/change-user-password",n).then((function(e){A(!1),h(""),v(""),i()})).catch((function(e){A(!1),h(""),v(""),o((0,k.zb)(e))}))}}(e)},children:(0,F.jsxs)(m.ZP,{container:!0,children:[(0,F.jsxs)(m.ZP,{item:!0,xs:12,className:n.modalFormScrollable,children:[(0,F.jsxs)("div",{className:n.spacerBottom,children:["Change password for: ",r]}),(0,F.jsx)(m.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,F.jsx)(Y.Z,{id:"new-password",name:"new-password",onChange:function(e){h(e.target.value)},label:"New Password",type:"password",value:d})}),(0,F.jsx)(m.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,F.jsx)(Y.Z,{id:"re-new-password",name:"re-new-password",onChange:function(e){v(e.target.value)},label:"Type New Password Again",type:"password",value:j})})]}),(0,F.jsx)(m.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,F.jsx)(D.Z,{type:"submit",variant:"contained",color:"primary",disabled:S||!(j.length>0&&d===j),children:"Save"})}),S&&(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(x.Z,{})})]})})}):null})),ee=t(49076),ne=t(14917),te=t(50276),se=t(37516),re=t(84669),ie=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)((0,l.Z)((0,l.Z)({pageContainer:{border:"1px solid #EAEAEA"},statusLabel:{fontSize:".8rem",marginRight:".5rem"},statusValue:{fontWeight:"bold",fontSize:".9rem",marginRight:".5rem"}},g.OR),g.qg),g.VX),(0,g.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.match,i=(0,u.I0)(),o=(0,s.useState)(!1),a=(0,c.Z)(o,2),l=a[0],d=a[1],h=(0,s.useState)(!1),x=(0,c.Z)(h,2),p=x[0],g=x[1],b=(0,s.useState)(!1),S=(0,c.Z)(b,2),C=S[0],w=S[1],I=(0,s.useState)(!1),T=(0,c.Z)(I,2),R=T[0],D=T[1],L=(0,s.useState)(!1),U=(0,c.Z)(L,2),O=U[0],_=U[1],z=(0,s.useState)([]),G=(0,c.Z)(z,2),V=G[0],W=G[1],q=(0,s.useState)([]),X=(0,c.Z)(q,2),J=X[0],Y=X[1],ie=(0,s.useState)([]),oe=(0,c.Z)(ie,2),ae=oe[0],ce=oe[1],le=(0,s.useState)(!1),ue=(0,c.Z)(le,2),de=ue[0],he=ue[1],fe=(0,s.useState)(!1),me=(0,c.Z)(fe,2),xe=me[0],pe=me[1],Ze=(0,s.useState)(!1),ge=(0,c.Z)(Ze,2),je=ge[0],ve=ge[1],ye=(0,y.IO)(t.params.userName),be=(0,E.F)(P.C3,[P.Ft.ADMIN_GET_GROUP]),Se=(0,s.useCallback)((function(){if(""===ye)return null;d(!0),f.Z.invoke("GET","/api/v1/user/".concat((0,y.LL)(ye))).then((function(e){D(!1);var n=e.memberOf||[];W(n);var t,s=[],r=(0,M.Z)(n);try{for(r.s();!(t=r.n()).done;){var i=t.value;s.push({group:i})}}catch(u){r.e(u)}finally{r.f()}Y(s);var o,a=[],c=(0,M.Z)(e.policy);try{for(c.s();!(o=c.n()).done;){var l=o.value;a.push({policy:l})}}catch(u){c.e(u)}finally{c.f()}ce(a),_("enabled"===e.status),ve(e.hasPolicy),d(!1)})).catch((function(e){D(!1),d(!1),i((0,k.zb)(e))}))}),[ye,i]);(0,s.useEffect)((function(){Se()}),[Se]);var Ae=[{type:"view",onClick:function(e){r.Z.push("".concat(P.gA.GROUPS,"/").concat((0,y.LL)(e.group)))},disableButtonFunction:function(){return!be}}];return(0,F.jsxs)(s.Fragment,{children:[(0,F.jsx)(v.Z,{label:(0,F.jsx)(s.Fragment,{children:(0,F.jsx)(re.Z,{label:"Users",to:P.gA.USERS})}),actions:(0,F.jsx)(s.Fragment,{})}),p&&(0,F.jsx)(B,{open:p,selectedUser:ye,closeModalAndRefresh:function(){g(!1),Se()}}),C&&(0,F.jsx)(K,{open:C,selectedUser:ye,currentPolicies:ae,closeModalAndRefresh:function(){w(!1),Se()}}),xe&&(0,F.jsx)(ee.default,{deleteOpen:xe,selectedUsers:[ye],closeDeleteModalAndRefresh:function(e){!function(e){pe(!1),e&&Se()}(e)},history:r.Z}),de&&(0,F.jsx)($,{open:de,userName:ye,closeModal:function(){return he(!1)}}),(0,F.jsxs)(A.Z,{className:n.pageContainer,children:[(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(ne.Z,{icon:(0,F.jsx)(s.Fragment,{children:(0,F.jsx)(Z.oyc,{width:40})}),title:ye,actions:(0,F.jsxs)(s.Fragment,{children:[(0,F.jsx)("span",{className:n.statusLabel,children:"User Status:"}),(0,F.jsx)("span",{className:n.statusValue,children:O?"Enabled":"Disabled"}),(0,F.jsx)(se.Z,{indicatorLabels:["Enabled","Disabled"],checked:O,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(){var e;_(!O),e=!O,R||(D(!0),f.Z.invoke("PUT","/api/v1/user/".concat((0,y.LL)(ye)),{status:e?"enabled":"disabled",groups:V}).then((function(e){D(!1)})).catch((function(e){D(!1),i((0,k.zb)(e))})))},switchOnly:!0}),(0,F.jsx)(N.Z,{tooltip:"Delete User",text:"",onClick:function(){pe(!0)},icon:(0,F.jsx)(Z.XHJ,{}),color:"secondary",variant:"outlined"}),(0,F.jsx)(N.Z,{tooltip:"Change Password",text:"",onClick:function(){he(!0)},icon:(0,F.jsx)(Z.tvm,{}),color:"primary",variant:"outlined"})]})})}),(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsxs)(te.Z,{children:[{tabConfig:{label:"Groups"},content:(0,F.jsxs)(s.Fragment,{children:[(0,F.jsxs)("div",{className:n.actionsTray,children:[(0,F.jsx)(H.Z,{children:"Groups"}),(0,F.jsx)(N.Z,{tooltip:"Add to Groups",text:"Add to Groups",onClick:function(){g(!0)},icon:(0,F.jsx)(Z.dtP,{}),color:"primary",variant:"contained"})]}),(0,F.jsx)("div",{className:n.tableBlock,children:(0,F.jsx)(j.Z,{itemActions:Ae,columns:[{label:"Name",elementKey:"group"}],isLoading:l,records:J,entityName:"Groups",idField:"group"})})]})},{tabConfig:{label:"Service Accounts"},content:(0,F.jsx)(Q,{user:ye,hasPolicy:je,history:r.Z})},{tabConfig:{label:"Policies"},content:(0,F.jsxs)(s.Fragment,{children:[(0,F.jsxs)("div",{className:n.actionsTray,children:[(0,F.jsx)(H.Z,{children:"Policies"}),(0,F.jsx)(N.Z,{tooltip:"Assign Policies",text:"Assign Policies",onClick:function(){w(!0)},icon:(0,F.jsx)(Z.v42,{}),color:"primary",variant:"contained"})]}),(0,F.jsx)("div",{className:n.tableBlock,children:(0,F.jsx)(j.Z,{itemActions:[{type:"view",onClick:function(e){r.Z.push("".concat(P.gA.POLICIES,"/").concat((0,y.LL)(e.policy)))}}],columns:[{label:"Name",elementKey:"policy"}],isLoading:l,records:ae,entityName:"Policies",idField:"policy"})})]})}]})})]})]})})),oe=t(3579),ae=t(20165),ce=t(25739),le=function(e){var n=e.icon,t=e.description;return(0,F.jsxs)(z.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,F.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})},ue=function(){return(0,F.jsxs)(z.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:[(0,F.jsxs)(z.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,F.jsx)(Z.M9A,{}),(0,F.jsx)("div",{children:"Learn more about the Users feature"})]}),(0,F.jsxs)(z.Z,{sx:{fontSize:"14px",marginBottom:"15px"},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,F.jsx)("br",{}),(0,F.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,F.jsx)("br",{})]}),(0,F.jsxs)(z.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,F.jsx)(le,{icon:(0,F.jsx)(Z.oyc,{}),description:"Create Users"}),(0,F.jsx)(le,{icon:(0,F.jsx)(Z.wws,{}),description:"Manage Groups"}),(0,F.jsx)(le,{icon:(0,F.jsx)(Z.QXQ,{}),description:"Assign Policies"})]})]})},de=(0,h.Z)((function(e){return(0,d.Z)((0,l.Z)((0,l.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}}},g.DF),g.ID))}))((function(e){var n=e.classes,t=(0,u.I0)(),i=(0,s.useState)(!1),o=(0,c.Z)(i,2),a=o[0],l=o[1],d=(0,s.useState)(""),h=(0,c.Z)(d,2),p=h[0],g=h[1],j=(0,s.useState)(""),y=(0,c.Z)(j,2),b=y[0],S=y[1],C=(0,s.useState)([]),w=(0,c.Z)(C,2),N=w[0],E=w[1],I=(0,s.useState)([]),T=(0,c.Z)(I,2),R=T[0],M=T[1],U=(0,s.useState)(!1),O=(0,c.Z)(U,2),B=O[0],K=O[1],z=""!==p.trim();return(0,F.jsx)(s.Fragment,{children:(0,F.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,F.jsx)(v.Z,{label:(0,F.jsx)(re.Z,{to:P.gA.USERS,label:"Users"})}),(0,F.jsx)(A.Z,{children:(0,F.jsx)(ce.Z,{title:"Create User",icon:(0,F.jsx)(Z.P3B,{}),helpbox:(0,F.jsx)(ue,{}),children:(0,F.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),b.length<8)return t((0,k.Ih)({errorMessage:"Passwords must be at least 8 characters long",detailedError:""})),void l(!1);a||(l(!0),f.Z.invoke("POST","/api/v1/users",{accessKey:p,secretKey:b,groups:N,policies:R}).then((function(e){l(!1),r.Z.push("".concat(P.gA.USERS))})).catch((function(e){l(!1),t((0,k.Ih)(e))})))}(e)},children:[(0,F.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,F.jsx)("div",{className:n.formFieldRow,children:(0,F.jsx)(Y.Z,{className:n.spacerBottom,classes:{inputLabel:n.sizedLabel},id:"accesskey-input",name:"accesskey-input",label:"User Name",value:p,autoFocus:!0,onChange:function(e){g(e.target.value)}})}),(0,F.jsx)("div",{className:n.formFieldRow,children:(0,F.jsx)(Y.Z,{className:n.spacerBottom,classes:{inputLabel:n.sizedLabel},id:"standard-multiline-static",name:"standard-multiline-static",label:"Password",type:B?"text":"password",value:b,onChange:function(e){S(e.target.value)},autoComplete:"current-password",overlayIcon:B?(0,F.jsx)(ae.Z,{}):(0,F.jsx)(oe.Z,{}),overlayAction:function(){return K(!B)}})}),(0,F.jsxs)(m.ZP,{container:!0,item:!0,spacing:"20",children:[(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(_.Z,{selectedPolicy:R,setSelectedPolicy:M})}),(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(L.Z,{selectedGroups:N,setSelectedGroups:function(e){E(e)}})})]}),a&&(0,F.jsx)(m.ZP,{item:!0,xs:12,children:(0,F.jsx)(x.Z,{})})]}),(0,F.jsxs)(m.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,F.jsx)(D.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){E([]),g(""),S(""),M([]),K(!1)},children:"Clear"}),(0,F.jsx)(D.Z,{type:"submit",variant:"contained",color:"primary",disabled:a||!z,children:"Save"})]})]})})})]})})})),he=(0,i.EN)((function(){return(0,F.jsx)(i.F0,{history:r.Z,children:(0,F.jsxs)(i.rs,{children:[(0,F.jsx)(i.AW,{path:P.gA.USER_ADD,exact:!0,component:de}),(0,F.jsx)(i.AW,{path:P.gA.USERS_VIEW,exact:!0,component:ie}),(0,F.jsx)(i.AW,{path:P.gA.USERS,exact:!0,component:R}),(0,F.jsx)(i.AW,{component:o.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,{})})]})})}},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),i=t(80184),o=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],i=n[1];return r.useEffect((function(){i("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),c=r.useMemo((function(){return{idPrefix:a,value:t}}),[a,t]);return(0,i.jsx)(o.Provider,{value:c,children:n})}function c(){return r.useContext(o)}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),i=t(72791),o=t(18073),a=t(83449),c=t(80184),l=["children"],u=i.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=i.Children.map(t,(function(e){return i.isValidElement(e)?i.cloneElement(e,{"aria-controls":(0,a.uU)(d,e.props.value),id:(0,a.pQ)(d,e.props.value)}):null}));return(0,c.jsx)(o.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 p}});var s=t(87462),r=t(63366),i=t(72791),o=t(28182),a=t(66934),c=t(31402),l=t(94419),u=t(21217);function d(e){return(0,u.Z)("MuiTabPanel",e)}(0,t(75878).Z)("MuiTabPanel",["root"]);var h=t(83449),f=t(80184),m=["children","className","value"],x=(0,a.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),p=i.forwardRef((function(e,n){var t=(0,c.Z)({props:e,name:"MuiTabPanel"}),i=t.children,a=t.className,u=t.value,p=(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),j=(0,h._i)();if(null===j)throw new TypeError("No TabContext provided");var v=(0,h.uU)(j,u),y=(0,h.pQ)(j,u);return(0,f.jsx)(x,(0,s.Z)({"aria-labelledby":y,className:(0,o.Z)(g.root,a),hidden:u!==j.value,id:v,ref:n,role:"tabpanel",ownerState:Z},p,{children:u===j.value&&i}))}))},23060:function(e,n,t){t.d(n,{Z:function(){return w}});var s=t(93433),r=t(29439),i=t(4942),o=t(63366),a=t(87462),c=t(72791),l=t(28182),u=t(94419),d=t(18529),h=t(12065),f=t(14036),m=t(66934),x=t(31402),p=t(23031),Z=t(42071),g=t(20890),j=t(21217);function v(e){return(0,j.Z)("MuiLink",e)}var y=(0,t(75878).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),b=t(80184),S=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],A={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},C=(0,m.ZP)(g.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,s=(0,d.D)(n,"palette.".concat(function(e){return A[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"!==s?(0,h.Fq)(s,.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(y.focusVisible),{outline:"auto"}))})),w=c.forwardRef((function(e,n){var t=(0,x.Z)({props:e,name:"MuiLink"}),i=t.className,d=t.color,h=void 0===d?"primary":d,m=t.component,g=void 0===m?"a":m,j=t.onBlur,y=t.onFocus,w=t.TypographyClasses,P=t.underline,N=void 0===P?"always":P,E=t.variant,k=void 0===E?"inherit":E,F=t.sx,I=(0,o.Z)(t,S),T=(0,p.Z)(),R=T.isFocusVisibleRef,M=T.onBlur,D=T.onFocus,L=T.ref,U=c.useState(!1),O=(0,r.Z)(U,2),B=O[0],_=O[1],K=(0,Z.Z)(n,L),z=(0,a.Z)({},t,{color:h,component:g,focusVisible:B,underline:N,variant:k}),G=function(e){var n=e.classes,t=e.component,s=e.focusVisible,r=e.underline,i={root:["root","underline".concat((0,f.Z)(r)),"button"===t&&"button",s&&"focusVisible"]};return(0,u.Z)(i,v,n)}(z);return(0,b.jsx)(C,(0,a.Z)({color:h,className:(0,l.Z)(G.root,i),classes:w,component:g,onBlur:function(e){M(e),!1===R.current&&_(!1),j&&j(e)},onFocus:function(e){D(e),!0===R.current&&_(!0),y&&y(e)},ref:K,ownerState:z,variant:k,sx:[].concat((0,s.Z)(Object.keys(A).includes(h)?[]:[{color:h}]),(0,s.Z)(Array.isArray(F)?F:[F]))},I))}))}}]);
-//# sourceMappingURL=1395.f8a4acb9.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1395.f8a4acb9.chunk.js.map b/portal-ui/build/static/js/1395.f8a4acb9.chunk.js.map
deleted file mode 100644
index 5225119c3..000000000
--- a/portal-ui/build/static/js/1395.f8a4acb9.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1395.f8a4acb9.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/FormLayout.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Common/WarningMessage/WarningMessage.tsx","screens/Console/Policies/PolicySelectors.tsx","screens/Console/Users/DeleteUser.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/UserDetails.tsx","screens/Console/Users/AddUserHelpBox.tsx","screens/Console/Users/AddUserScreen.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 { useDispatch } 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\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\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}\n\nconst DeleteServiceAccount = ({\n classes,\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedServiceAccount,\n}: IDeleteServiceAccountProps) => {\n const dispatch = useDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedServiceAccount) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/service-accounts/${encodeURLString(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\nexport default withStyles(styles)(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 {children}\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n \n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n \n
New {entity} Created
\n
\n }\n titleIcon={ }\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n \n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n >\n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n >\n )}\n \n \n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n >\n )}\n {idp ? (\n \n Please Login via the configured external identity provider.\n
\n ) : (\n \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={ }\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n >\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 SectionTitle from \"./SectionTitle\";\n\ntype Props = {\n title: string;\n icon: React.ReactNode;\n helpbox?: React.ReactNode;\n children: React.ReactNode;\n};\n\nconst FormLayout: React.FC = ({ children, title, helpbox, icon }) => {\n return (\n \n \n {title} \n {children}\n \n\n {helpbox}\n \n );\n};\n\nexport default FormLayout;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have 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 );\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, { useCallback, useEffect, useState } from \"react\";\nimport { useDispatch } 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\";\n\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\n\ninterface ISelectPolicyProps {\n classes: any;\n selectedPolicy?: string[];\n setSelectedPolicy: any;\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}: ISelectPolicyProps) => {\n const dispatch = useDispatch();\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 dispatch(setModalErrorSnackMessage(err));\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchPolicies();\n }\n }, [loading, fetchPolicies]);\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...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\nexport default withStyles(styles)(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, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport WarningMessage from \"../Common/WarningMessage/WarningMessage\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../common/api\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport Loader from \"../Common/Loader/Loader\";\ninterface IDeleteUserProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedUsers: string[] | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n history: any;\n}\n\nconst DeleteUser = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedUsers,\n setErrorSnackMessage,\n history,\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 const [loadingSA, setLoadingSA] = useState(true);\n const [hasSA, setHasSA] = useState(false);\n const [userSAList, setUserSAList] = useState([]);\n\n const userLoggedIn = localStorage.getItem(\"userLoggedIn\") || \"\";\n\n useEffect(() => {\n if (selectedUsers) {\n api\n .invoke(\"POST\", `/api/v1/users/service-accounts`, selectedUsers)\n .then((res) => {\n setUserSAList(res.userServiceAccountList);\n if (res.hasSA) {\n setHasSA(true);\n }\n setLoadingSA(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingSA(false);\n });\n }\n }, [selectedUsers, setErrorSnackMessage]);\n\n if (!selectedUsers) {\n return null;\n }\n const renderUsers = selectedUsers.map((user) => (\n \n {user} \n
\n ));\n const viewAction = (selectionElement: any): void => {\n history.push(\n `${IAM_PAGES.USERS}/${encodeURLString(selectionElement.userName)}`\n );\n onClose();\n };\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n },\n ];\n\n const onConfirmDelete = () => {\n for (let user of selectedUsers) {\n if (user === userLoggedIn) {\n setErrorSnackMessage({\n errorMessage: \"Cannot delete currently logged in user\",\n detailedError: `Cannot delete currently logged in user ${userLoggedIn}`,\n });\n closeDeleteModalAndRefresh(true);\n } else {\n invokeDeleteApi(\"DELETE\", `/api/v1/user/${encodeURLString(user)}`);\n closeDeleteModalAndRefresh(true);\n history.push(`${IAM_PAGES.USERS}`);\n }\n }\n };\n\n interface userSACount {\n userName: string;\n numSAs: number;\n }\n\n const noSAtext =\n \"Are you sure you want to delete the following \" +\n selectedUsers.length +\n \" \" +\n \"user\" +\n (selectedUsers.length > 1 ? \"s?\" : \"?\");\n\n return loadingSA ? (\n \n ) : (\n 1 ? \"s\" : \"\"}`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={ }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n \n {hasSA ? (\n \n \n \n \n ) : (\n \n {noSAtext}\n {renderUsers}\n \n )}\n \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteUser);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { useDispatch } 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 { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\n\ninterface IGroupsProps {\n classes: any;\n selectedGroups: string[];\n setSelectedGroups: any;\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}: IGroupsProps) => {\n const dispatch = useDispatch();\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 dispatch(setModalErrorSnackMessage(err));\n isLoading(false);\n });\n }, [dispatch]);\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