diff --git a/arthas-jfr-backend/.gitattributes b/arthas-jfr-backend/.gitattributes new file mode 100644 index 0000000000..3b41682ac5 --- /dev/null +++ b/arthas-jfr-backend/.gitattributes @@ -0,0 +1,2 @@ +/mvnw text eol=lf +*.cmd text eol=crlf diff --git a/arthas-jfr-backend/.gitignore b/arthas-jfr-backend/.gitignore new file mode 100644 index 0000000000..b46b2814e4 --- /dev/null +++ b/arthas-jfr-backend/.gitignore @@ -0,0 +1,34 @@ +HELP.md +README_JFR_ANALYZER.md +target/ +.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/arthas-jfr-backend/.mvn/wrapper/maven-wrapper.properties b/arthas-jfr-backend/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000000..2f94e61698 --- /dev/null +++ b/arthas-jfr-backend/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +wrapperVersion=3.3.2 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.10/apache-maven-3.9.10-bin.zip diff --git a/arthas-jfr-backend/data/testdb.mv.db b/arthas-jfr-backend/data/testdb.mv.db new file mode 100644 index 0000000000..de70fa5ebc Binary files /dev/null and b/arthas-jfr-backend/data/testdb.mv.db differ diff --git a/arthas-jfr-backend/data/testdb.trace.db b/arthas-jfr-backend/data/testdb.trace.db new file mode 100644 index 0000000000..4196daa3c6 --- /dev/null +++ b/arthas-jfr-backend/data/testdb.trace.db @@ -0,0 +1,138 @@ +2025-07-08 21:30:41.690076+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table deleted_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, original_created_time datetime(6) not null, size bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table deleted_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, original_created_time datetime(6) not null, size bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:30:41.695074+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table external_login_data (id bigint not null auto_increment, created_time datetime(6) not null, principal_name varchar(64) not null, provider varchar(32) not null, user_id bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table external_login_data (id bigint not null auto_increment, created_time datetime(6) not null, principal_name varchar(64) not null, provider varchar(32) not null, user_id bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:30:41.696083+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, size bigint not null, user_id bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, size bigint not null, user_id bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:30:41.697075+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table login_data (id bigint not null auto_increment, created_time datetime(6) not null, password_hash varchar(64), username varchar(128) not null, user_id bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table login_data (id bigint not null auto_increment, created_time datetime(6) not null, password_hash varchar(64), username varchar(128) not null, user_id bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:30:41.698075+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table transferring_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, failure_message varchar(1024), last_modified_time datetime(6) not null, total_size bigint not null, transferred_size bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table transferring_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, failure_message varchar(1024), last_modified_time datetime(6) not null, total_size bigint not null, transferred_size bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:30:41.698075+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table users (id bigint not null auto_increment, created_time datetime(6) not null, admin bit not null, last_modified_time datetime(6) not null, name varchar(64), primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table users (id bigint not null auto_increment, created_time datetime(6) not null, admin bit not null, last_modified_time datetime(6) not null, name varchar(64), primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:30:41.699083+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "deleted_files" not found (this database is empty); SQL statement: +alter table deleted_files drop index UK2p842psho13kapkrnebku355r [42104-232] +2025-07-08 21:30:41.700082+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "deleted_files" not found; SQL statement: +alter table deleted_files add constraint UK2p842psho13kapkrnebku355r unique (unique_name) [42102-232] +2025-07-08 21:30:41.700082+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found (this database is empty); SQL statement: +alter table external_login_data drop index UK2gmisqn1dxiuc9l5ogkw7a107 [42104-232] +2025-07-08 21:30:41.700082+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found; SQL statement: +alter table external_login_data add constraint UK2gmisqn1dxiuc9l5ogkw7a107 unique (method, provider, principal_name) [42102-232] +2025-07-08 21:30:41.700082+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found (this database is empty); SQL statement: +alter table external_login_data drop index UKcn7mrgng6k3g18v3um9l1ht72 [42104-232] +2025-07-08 21:30:41.701077+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found; SQL statement: +alter table external_login_data add constraint UKcn7mrgng6k3g18v3um9l1ht72 unique (user_id) [42102-232] +2025-07-08 21:30:41.701077+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "files" not found (this database is empty); SQL statement: +alter table files drop index UKqgdyf7q5prl5o3j8hvk3rinsn [42104-232] +2025-07-08 21:30:41.701077+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "files" not found; SQL statement: +alter table files add constraint UKqgdyf7q5prl5o3j8hvk3rinsn unique (unique_name) [42102-232] +2025-07-08 21:30:41.701077+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found (this database is empty); SQL statement: +alter table login_data drop index UKh9n534ik0paa1rw5eox0vml8t [42104-232] +2025-07-08 21:30:41.701077+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found; SQL statement: +alter table login_data add constraint UKh9n534ik0paa1rw5eox0vml8t unique (username) [42102-232] +2025-07-08 21:30:41.701077+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found (this database is empty); SQL statement: +alter table login_data drop index UKq1ymg45td0ee8x4ykod1lqwv1 [42104-232] +2025-07-08 21:30:41.702075+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found; SQL statement: +alter table login_data add constraint UKq1ymg45td0ee8x4ykod1lqwv1 unique (user_id) [42102-232] +2025-07-08 21:30:41.702075+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "transferring_files" not found (this database is empty); SQL statement: +alter table transferring_files drop index UK8ib9fse86m5ldk4465h8ntft3 [42104-232] +2025-07-08 21:30:41.702075+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "transferring_files" not found; SQL statement: +alter table transferring_files add constraint UK8ib9fse86m5ldk4465h8ntft3 unique (unique_name) [42102-232] +2025-07-08 21:30:41.702075+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found; SQL statement: +alter table external_login_data add constraint FKnmofcs8yvkr1o1v4tvs02jtm4 foreign key (user_id) references users (id) [42102-232] +2025-07-08 21:30:41.703083+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found; SQL statement: +alter table login_data add constraint FKx5lnws4uhfpv80yuo1uvjv2y foreign key (user_id) references users (id) [42102-232] +2025-07-08 21:30:46.180200+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "files" not found (this database is empty); SQL statement: +select fe1_0.id,fe1_0.created_time,fe1_0.original_name,fe1_0.size,fe1_0.type,fe1_0.unique_name,fe1_0.user_id from files fe1_0 where fe1_0.user_id=? and fe1_0.type=? order by fe1_0.created_time desc limit ? [42104-232] +2025-07-08 21:33:30.962279+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table deleted_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, original_created_time datetime(6) not null, size bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table deleted_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, original_created_time datetime(6) not null, size bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:33:30.970795+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table external_login_data (id bigint not null auto_increment, created_time datetime(6) not null, principal_name varchar(64) not null, provider varchar(32) not null, user_id bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table external_login_data (id bigint not null auto_increment, created_time datetime(6) not null, principal_name varchar(64) not null, provider varchar(32) not null, user_id bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:33:30.971788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, size bigint not null, user_id bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, size bigint not null, user_id bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:33:30.971788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table login_data (id bigint not null auto_increment, created_time datetime(6) not null, password_hash varchar(64), username varchar(128) not null, user_id bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table login_data (id bigint not null auto_increment, created_time datetime(6) not null, password_hash varchar(64), username varchar(128) not null, user_id bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:33:30.972788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table transferring_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, failure_message varchar(1024), last_modified_time datetime(6) not null, total_size bigint not null, transferred_size bigint not null, primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table transferring_files (id bigint not null auto_increment, created_time datetime(6) not null, original_name varchar(256) not null, type enum ('JFR','LOG','OTHER') not null, unique_name varchar(64) not null, failure_message varchar(1024), last_modified_time datetime(6) not null, total_size bigint not null, transferred_size bigint not null, primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:33:30.973796+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table users (id bigint not null auto_increment, created_time datetime(6) not null, admin bit not null, last_modified_time datetime(6) not null, name varchar(64), primary key (id)) engine[*]=InnoDB"; expected "identifier"; SQL statement: +create table users (id bigint not null auto_increment, created_time datetime(6) not null, admin bit not null, last_modified_time datetime(6) not null, name varchar(64), primary key (id)) engine=InnoDB [42001-232] +2025-07-08 21:33:30.974788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "deleted_files" not found (this database is empty); SQL statement: +alter table deleted_files drop index UK2p842psho13kapkrnebku355r [42104-232] +2025-07-08 21:33:30.974788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "deleted_files" not found; SQL statement: +alter table deleted_files add constraint UK2p842psho13kapkrnebku355r unique (unique_name) [42102-232] +2025-07-08 21:33:30.975788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found (this database is empty); SQL statement: +alter table external_login_data drop index UK2gmisqn1dxiuc9l5ogkw7a107 [42104-232] +2025-07-08 21:33:30.975788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found; SQL statement: +alter table external_login_data add constraint UK2gmisqn1dxiuc9l5ogkw7a107 unique (method, provider, principal_name) [42102-232] +2025-07-08 21:33:30.975788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found (this database is empty); SQL statement: +alter table external_login_data drop index UKcn7mrgng6k3g18v3um9l1ht72 [42104-232] +2025-07-08 21:33:30.975788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found; SQL statement: +alter table external_login_data add constraint UKcn7mrgng6k3g18v3um9l1ht72 unique (user_id) [42102-232] +2025-07-08 21:33:30.975788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "files" not found (this database is empty); SQL statement: +alter table files drop index UKqgdyf7q5prl5o3j8hvk3rinsn [42104-232] +2025-07-08 21:33:30.976788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "files" not found; SQL statement: +alter table files add constraint UKqgdyf7q5prl5o3j8hvk3rinsn unique (unique_name) [42102-232] +2025-07-08 21:33:30.976788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found (this database is empty); SQL statement: +alter table login_data drop index UKh9n534ik0paa1rw5eox0vml8t [42104-232] +2025-07-08 21:33:30.976788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found; SQL statement: +alter table login_data add constraint UKh9n534ik0paa1rw5eox0vml8t unique (username) [42102-232] +2025-07-08 21:33:30.976788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found (this database is empty); SQL statement: +alter table login_data drop index UKq1ymg45td0ee8x4ykod1lqwv1 [42104-232] +2025-07-08 21:33:30.976788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found; SQL statement: +alter table login_data add constraint UKq1ymg45td0ee8x4ykod1lqwv1 unique (user_id) [42102-232] +2025-07-08 21:33:30.976788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "transferring_files" not found (this database is empty); SQL statement: +alter table transferring_files drop index UK8ib9fse86m5ldk4465h8ntft3 [42104-232] +2025-07-08 21:33:30.976788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "transferring_files" not found; SQL statement: +alter table transferring_files add constraint UK8ib9fse86m5ldk4465h8ntft3 unique (unique_name) [42102-232] +2025-07-08 21:33:30.977788+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "external_login_data" not found; SQL statement: +alter table external_login_data add constraint FKnmofcs8yvkr1o1v4tvs02jtm4 foreign key (user_id) references users (id) [42102-232] +2025-07-08 21:33:30.978789+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "login_data" not found; SQL statement: +alter table login_data add constraint FKx5lnws4uhfpv80yuo1uvjv2y foreign key (user_id) references users (id) [42102-232] +2025-07-08 21:37:32.670419+08:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "files" not found (this database is empty); SQL statement: +select fe1_0.id,fe1_0.created_time,fe1_0.original_name,fe1_0.size,fe1_0.type,fe1_0.unique_name,fe1_0.user_id from files fe1_0 where fe1_0.user_id=? and fe1_0.type=? order by fe1_0.created_time desc limit ? [42104-232] diff --git a/arthas-jfr-backend/mvnw b/arthas-jfr-backend/mvnw new file mode 100644 index 0000000000..19529ddf8c --- /dev/null +++ b/arthas-jfr-backend/mvnw @@ -0,0 +1,259 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.3.2 +# +# Optional ENV vars +# ----------------- +# JAVA_HOME - location of a JDK home dir, required when download maven via java source +# MVNW_REPOURL - repo url base for downloading maven distribution +# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output +# ---------------------------------------------------------------------------- + +set -euf +[ "${MVNW_VERBOSE-}" != debug ] || set -x + +# OS specific support. +native_path() { printf %s\\n "$1"; } +case "$(uname)" in +CYGWIN* | MINGW*) + [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" + native_path() { cygpath --path --windows "$1"; } + ;; +esac + +# set JAVACMD and JAVACCMD +set_java_home() { + # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched + if [ -n "${JAVA_HOME-}" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACCMD="$JAVA_HOME/jre/sh/javac" + else + JAVACMD="$JAVA_HOME/bin/java" + JAVACCMD="$JAVA_HOME/bin/javac" + + if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then + echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/arthas-jfr-backend/mvnw.cmd b/arthas-jfr-backend/mvnw.cmd new file mode 100644 index 0000000000..249bdf3822 --- /dev/null +++ b/arthas-jfr-backend/mvnw.cmd @@ -0,0 +1,149 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.2 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' +$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" +if ($env:MAVEN_USER_HOME) { + $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain" +} +$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/arthas-jfr-backend/pom.xml b/arthas-jfr-backend/pom.xml new file mode 100644 index 0000000000..6eda6882c6 --- /dev/null +++ b/arthas-jfr-backend/pom.xml @@ -0,0 +1,139 @@ + + + 4.0.0 + + com.taobao.arthas + arthas-all + ${revision} + ../pom.xml + + arthas-jfr-backend + arthas-jfr-backend + JFR Analyzer Backend for Arthas + + + 17 + 8.3.1 + + + + + org.springframework.boot + spring-boot-starter-web + ${spring-boot3.version} + + + org.springframework.boot + spring-boot-starter-test + ${spring-boot3.version} + test + + + org.springframework.boot + spring-boot-starter-data-jpa + ${spring-boot3.version} + + + com.mysql + mysql-connector-j + 8.0.33 + + + com.h2database + h2 + 2.1.214 + runtime + + + org.projectlombok + lombok + 1.18.30 + provided + + + org.ow2.asm + asm + 9.2 + + + + + org.openjdk.jmc + flightrecorder + ${jmc.version} + + + org.openjdk.jmc + common + ${jmc.version} + + + org.openjdk.jmc + flightrecorder.rules + ${jmc.version} + + + org.openjdk.jmc + flightrecorder.rules.jdk + ${jmc.version} + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + ${java.version} + ${java.version} + ${java.version} + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot3.version} + + + + repackage + + + + + + + + + + + + + + + ch.qos.logback + logback-classic + 1.4.14 + + + ch.qos.logback + logback-core + 1.4.14 + + + org.slf4j + slf4j-api + 2.0.9 + + + + + diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/JfrAnalyzerBackendApplication.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/JfrAnalyzerBackendApplication.java new file mode 100644 index 0000000000..e8d91d27d3 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/JfrAnalyzerBackendApplication.java @@ -0,0 +1,13 @@ +package org.example.jfranalyzerbackend; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class JfrAnalyzerBackendApplication { + + public static void main(String[] args) { + SpringApplication.run(JfrAnalyzerBackendApplication.class, args); + } + +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/annotation/UseGsonEnumAdaptor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/annotation/UseGsonEnumAdaptor.java new file mode 100644 index 0000000000..bbd2637f78 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/annotation/UseGsonEnumAdaptor.java @@ -0,0 +1,11 @@ +package org.example.jfranalyzerbackend.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface UseGsonEnumAdaptor { +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/ArthasConfig.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/ArthasConfig.java new file mode 100644 index 0000000000..ad96f5e17d --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/ArthasConfig.java @@ -0,0 +1,18 @@ +package org.example.jfranalyzerbackend.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "arthas") +public class ArthasConfig { + private String jfrStoragePath; + + public String getJfrStoragePath() { + return jfrStoragePath; + } + + public void setJfrStoragePath(String jfrStoragePath) { + this.jfrStoragePath = jfrStoragePath; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/CorsConfig.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/CorsConfig.java new file mode 100644 index 0000000000..a36184535e --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/CorsConfig.java @@ -0,0 +1,36 @@ +package org.example.jfranalyzerbackend.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class CorsConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOriginPatterns("*") + .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") + .allowedHeaders("*") + .allowCredentials(true) + .maxAge(3600); + } + + @Bean + public CorsConfigurationSource corsConfigurationSource() { + CorsConfiguration configuration = new CorsConfiguration(); + configuration.addAllowedOriginPattern("*"); + configuration.addAllowedMethod("*"); + configuration.addAllowedHeader("*"); + configuration.setAllowCredentials(true); + + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + return source; + } +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/Result.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/Result.java new file mode 100644 index 0000000000..961043c6f8 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/config/Result.java @@ -0,0 +1,102 @@ +package org.example.jfranalyzerbackend.config; + +import java.util.Objects; + +public class Result { + private Integer code; + private String msg; + private T data; + + public Result() { + } + + public Result(Integer code, String msg, T data) { + this.code = code; + this.msg = msg; + this.data = data; + } + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Result result = (Result) o; + return Objects.equals(code, result.code) && Objects.equals(msg, result.msg) && Objects.equals(data, result.data); + } + + @Override + public int hashCode() { + return Objects.hash(code, msg, data); + } + + @Override + public String toString() { + return "Result{" + + "code=" + code + + ", msg='" + msg + '\'' + + ", data=" + data + + '}'; + } + + public static Result success(T data) { + Result result = new Result<>(); + result.code = 1; + result.msg = "success"; + result.data = data; + return result; + } + + public static Result success() { + Result result = new Result<>(); + result.code = 1; + result.msg = "success"; + return result; + } + + public static Result error(String msg) { + Result result = new Result<>(); + result.code = 0; + result.msg = msg; + return result; + } + + /** + * 泛型错误方法,用于返回指定类型的错误结果 + * @param msg 错误消息 + * @param 数据类型 + * @return 错误结果 + */ + public static Result errorWithType(String msg) { + Result result = new Result<>(); + result.code = 0; + result.msg = msg; + result.data = null; + return result; + } +} + + diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/controller/FileController.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/controller/FileController.java new file mode 100644 index 0000000000..047da5abb9 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/controller/FileController.java @@ -0,0 +1,74 @@ +package org.example.jfranalyzerbackend.controller; + +import org.example.jfranalyzerbackend.config.Result; +import org.example.jfranalyzerbackend.dto.FileView; +import org.example.jfranalyzerbackend.enums.FileType; +import org.example.jfranalyzerbackend.service.FileService; +import org.example.jfranalyzerbackend.vo.PageView; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +@RestController +public class FileController { + + private final FileService fileService; + + /** + * @param fileService file service + */ + public FileController(FileService fileService) { + this.fileService = fileService; + } + + /** + * Query the files of the current user by type and paging information. + * + * @param type the expected file type + * @param page the page number, starts from 1 + * @param pageSize the page size + * @return the page view of the files + */ + @GetMapping("/files") + public Result> queryFiles(@RequestParam(required = false) FileType type, + @RequestParam(defaultValue = "1") int page, + @RequestParam(defaultValue = "10") int pageSize) { + System.out.println("文件查询"); + PageView pageView = fileService.getUserFileViews(type, page, pageSize); + return Result.success(pageView); + } + + /** + * Upload a file + * + * @param type the file type + * @param file the file + * @return the file id + * @throws Throwable the exception + */ + @PostMapping(value = "/files/upload") + public Result upload(@RequestParam FileType type, + @RequestParam MultipartFile file) throws Throwable { + System.out.println("文件上传"); + long fileId = fileService.handleUploadRequest(type, file); + return Result.success(fileId); + } + + /** + * Delete the file by id. + * + * @param fileId the file id + */ + @DeleteMapping("/files/{file-id}") + public Result deleteFile(@PathVariable("file-id") long fileId) { + fileService.deleteById(fileId); + return Result.success(); + } + + + + +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/controller/JFRAnalysisController.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/controller/JFRAnalysisController.java new file mode 100644 index 0000000000..2c3f762429 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/controller/JFRAnalysisController.java @@ -0,0 +1,132 @@ +package org.example.jfranalyzerbackend.controller; + +import org.example.jfranalyzerbackend.config.Result; +import org.example.jfranalyzerbackend.config.ArthasConfig; +import org.example.jfranalyzerbackend.entity.PerfDimensionFactory; +import org.example.jfranalyzerbackend.service.JFRAnalysisService; +import org.example.jfranalyzerbackend.service.FileService; +import org.example.jfranalyzerbackend.vo.FlameGraph; +import org.example.jfranalyzerbackend.vo.Metadata; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * JFR分析控制器 + * 提供JFR文件分析和火焰图生成的REST API + */ +@RestController +@RequestMapping("/api/jfr") +public class JFRAnalysisController { + + private static final Logger log = LoggerFactory.getLogger(JFRAnalysisController.class); + + private final JFRAnalysisService jfrAnalysisService; + private final FileService fileService; + private final ArthasConfig arthasConfig; + + @Autowired + public JFRAnalysisController(JFRAnalysisService jfrAnalysisService, FileService fileService, ArthasConfig arthasConfig) { + this.jfrAnalysisService = jfrAnalysisService; + this.fileService = fileService; + this.arthasConfig = arthasConfig; + } + + /** + * 通过文件ID分析JFR文件并生成火焰图 + * + * @param fileId 文件ID + * @param dimension 分析维度 + * @param include 是否包含指定的任务集 + * @param taskSet 任务集(可选) + * @param options 分析选项(可选) + * @return 火焰图数据 + */ + @PostMapping("/analyze/{fileId}") + public Result analyzeJFRFileById( + @PathVariable Long fileId, + @RequestParam String dimension, + @RequestParam(defaultValue = "true") boolean include, + @RequestParam(required = false) List taskSet, + @RequestParam(required = false) Map options) { + String filePath = fileService.getFilePathById(fileId); + FlameGraph fg = jfrAnalysisService.analyzeAndGenerateFlameGraph( + Paths.get(filePath), dimension, include, taskSet, options + ); + log.info("火焰图生成完成,数据点数量: {}", fg.getData().length); + System.out.println(fg.getSymbolTable()); + System.out.println(fg); + return Result.success(fg); + } + + /** + * 分析JFR文件并生成火焰图 + * + * @param filePath JFR文件路径 + * @param dimension 分析维度 + * @param include 是否包含指定的任务集 + * @param taskSet 任务集(可选) + * @param options 分析选项(可选) + * @return 火焰图数据 + */ + @PostMapping("/analyze") + public Result analyzeJFRFile( + @RequestParam String filePath, + @RequestParam String dimension, + @RequestParam(defaultValue = "true") boolean include, + @RequestParam(required = false) List taskSet, + @RequestParam(required = false) Map options) { + FlameGraph fg = jfrAnalysisService.analyzeAndGenerateFlameGraph( + Paths.get(filePath), dimension, include, taskSet, options + ); + log.info("火焰图生成完成,数据点数量: {}", fg.getData().length); + System.out.println(fg.getSymbolTable()); + System.out.println(fg); + return Result.success(fg); + } + + /** + * 获取分析元数据 + * + * @return 元数据信息 + */ + @GetMapping("/metadata") + public Result getMetadata() { + Metadata metadata = jfrAnalysisService.getMetadata(); + log.info("=== 获取元数据 ==="); + System.out.println( metadata); + return Result.success(metadata); + } + + /** + * 验证JFR文件是否有效 + * + * @param filePath JFR文件路径 + * @return 验证结果 + */ + @GetMapping("/validate") + public Result validateJFRFile(@RequestParam String filePath) { + boolean valid = jfrAnalysisService.isValidJFRFile(Paths.get(filePath)); + return Result.success(valid); + } + + /** + * 获取支持的分析维度列表 + * + * @return 支持的维度列表 + */ + @GetMapping("/dimensions") + public Result> getSupportedDimensions() { + List dims = jfrAnalysisService.getSupportedDimensions(); + System.out.println(dims); + return Result.success(dims); + } + +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/dto/FileView.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/dto/FileView.java new file mode 100644 index 0000000000..6949a192c8 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/dto/FileView.java @@ -0,0 +1,13 @@ +package org.example.jfranalyzerbackend.dto; + +import org.example.jfranalyzerbackend.enums.FileType; + +import java.time.LocalDateTime; + +public record FileView(long id, + String uniqueName, + String originalName, + long size, + FileType type, + LocalDateTime createdTime) { +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/PerfDimensionFactory.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/PerfDimensionFactory.java new file mode 100644 index 0000000000..952b9b40e3 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/PerfDimensionFactory.java @@ -0,0 +1,80 @@ + +package org.example.jfranalyzerbackend.entity; + + + +import org.example.jfranalyzerbackend.enums.Unit; +import org.example.jfranalyzerbackend.model.Filter; +import org.example.jfranalyzerbackend.model.PerfDimension; + + +public class PerfDimensionFactory { + + public static PerfDimension[] PERF_DIMENSIONS; + + + static final Filter FILTER_THREAD = Filter.of("Thread", null); + static final Filter FILTER_CLASS = Filter.of("Class", null); + static final Filter FILTER_METHOD = Filter.of("Method", null); + + static final Filter[] FILTERS = new Filter[]{FILTER_THREAD, FILTER_CLASS, FILTER_METHOD}; + + static final PerfDimension DIM_CPU_TIME = PerfDimension.of(ProfileDimension.CPU.getKey(), ProfileDimension.CPU.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_CPU_SAMPLE = PerfDimension.of(ProfileDimension.CPU_SAMPLE.getKey(), ProfileDimension.CPU_SAMPLE.getDesc(), FILTERS, Unit.COUNT); + + static final PerfDimension DIM_WALL_CLOCK = PerfDimension.of(ProfileDimension.WALL_CLOCK.getKey(), ProfileDimension.WALL_CLOCK.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_NATIVE_EXECUTION_SAMPLES = PerfDimension.of(ProfileDimension.NATIVE_EXECUTION_SAMPLES.getKey(), ProfileDimension.NATIVE_EXECUTION_SAMPLES.getDesc(), FILTERS); + + static final PerfDimension DIM_ALLOC_COUNT = PerfDimension.of(ProfileDimension.ALLOC.getKey(), ProfileDimension.ALLOC.getDesc(), FILTERS, Unit.COUNT); + + static final PerfDimension DIM_ALLOC_MEMORY = PerfDimension.of(ProfileDimension.MEM.getKey(), ProfileDimension.MEM.getDesc(), FILTERS, Unit.BYTE); + + static final PerfDimension DIM_FILE_IO_TIME = PerfDimension.of(ProfileDimension.FILE_IO_TIME.getKey(), ProfileDimension.FILE_IO_TIME.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_FILE_READ_SIZE = PerfDimension.of(ProfileDimension.FILE_READ_SIZE.getKey(), ProfileDimension.FILE_READ_SIZE.getDesc(), FILTERS, Unit.BYTE); + + static final PerfDimension DIM_FILE_WRITE_SIZE = PerfDimension.of(ProfileDimension.FILE_WRITE_SIZE.getKey(), ProfileDimension.FILE_WRITE_SIZE.getDesc(), FILTERS, Unit.BYTE); + + static final PerfDimension DIM_SOCKET_READ_TIME = PerfDimension.of(ProfileDimension.SOCKET_READ_TIME.getKey(), ProfileDimension.SOCKET_READ_TIME.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_SOCKET_READ_SIZE = PerfDimension.of(ProfileDimension.SOCKET_READ_SIZE.getKey(), ProfileDimension.SOCKET_READ_SIZE.getDesc(), FILTERS, Unit.BYTE); + + static final PerfDimension DIM_SOCKET_WRITE_TIME = PerfDimension.of(ProfileDimension.SOCKET_WRITE_TIME.getKey(), ProfileDimension.SOCKET_WRITE_TIME.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_SOCKET_WRITE_SIZE = PerfDimension.of(ProfileDimension.SOCKET_WRITE_SIZE.getKey(), ProfileDimension.SOCKET_WRITE_SIZE.getDesc(), FILTERS, Unit.BYTE); + + static final PerfDimension DIM_SYNCHRONIZATION = PerfDimension.of(ProfileDimension.SYNCHRONIZATION.getKey(), ProfileDimension.SYNCHRONIZATION.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_THREAD_PARK = PerfDimension.of(ProfileDimension.THREAD_PARK.getKey(), ProfileDimension.THREAD_PARK.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_CLASS_LOAD_WALL_TIME = PerfDimension.of(ProfileDimension.CLASS_LOAD_WALL_TIME.getKey(), ProfileDimension.CLASS_LOAD_WALL_TIME.getDesc(), FILTERS, Unit.NANO_SECOND); + + static final PerfDimension DIM_CLASS_LOAD_COUNT = PerfDimension.of(ProfileDimension.CLASS_LOAD_COUNT.getKey(), ProfileDimension.CLASS_LOAD_COUNT.getDesc(), FILTERS, Unit.COUNT); + + static final PerfDimension DIM_THREAD_SLEEP_TIME = PerfDimension.of(ProfileDimension.THREAD_SLEEP.getKey(), ProfileDimension.THREAD_SLEEP.getDesc(), FILTERS, Unit.NANO_SECOND); + + static { + PERF_DIMENSIONS = new PerfDimension[]{ + DIM_CPU_TIME, + DIM_CPU_SAMPLE, + DIM_WALL_CLOCK, + DIM_NATIVE_EXECUTION_SAMPLES, + DIM_ALLOC_COUNT, + DIM_ALLOC_MEMORY, + DIM_FILE_IO_TIME, + DIM_FILE_READ_SIZE, + DIM_FILE_WRITE_SIZE, + DIM_SOCKET_READ_TIME, + DIM_SOCKET_READ_SIZE, + DIM_SOCKET_WRITE_TIME, + DIM_SOCKET_WRITE_SIZE, + DIM_SYNCHRONIZATION, + DIM_THREAD_PARK, + DIM_CLASS_LOAD_WALL_TIME, + DIM_CLASS_LOAD_COUNT, + DIM_THREAD_SLEEP_TIME, + }; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/ProfileDimension.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/ProfileDimension.java new file mode 100644 index 0000000000..ea504c0ab6 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/ProfileDimension.java @@ -0,0 +1,67 @@ +package org.example.jfranalyzerbackend.entity; + +import lombok.Getter; + +public enum ProfileDimension { + CPU(1, "CPU Time"), + CPU_SAMPLE(1 << 1, "CPU Sample"), + WALL_CLOCK(1 << 2, "Wall Clock"), + NATIVE_EXECUTION_SAMPLES(1 << 3, "Native Execution Samples"), + ALLOC(1 << 4, "Allocation Count"), + MEM(1 << 5, "Allocated Memory"), + + FILE_IO_TIME(1 << 6, "File IO Time"), + FILE_READ_SIZE(1 << 7, "File Read Size"), + FILE_WRITE_SIZE(1 << 8, "File Write Size"), + + SOCKET_READ_SIZE(1 << 9, "Socket Read Size"), + SOCKET_WRITE_SIZE(1 << 10, "Socket Write Size"), + SOCKET_READ_TIME(1 << 11, "Socket Read Time"), + SOCKET_WRITE_TIME(1 << 12, "Socket Write Time"), + + SYNCHRONIZATION(1 << 13, "Synchronization"), + THREAD_PARK(1 << 14, "Thread Park"), + + CLASS_LOAD_COUNT(1 << 15, "Class Load Count"), + CLASS_LOAD_WALL_TIME(1 << 16, "Class Load Wall Time"), + + THREAD_SLEEP(1 << 17, "Thread Sleep Time"), + + PROBLEMS(1 << 20, "Problem"); + + @Getter + private final int value; + + @Getter + private final String key; + + @Getter + private final String desc; + + ProfileDimension(int v, String key) { + this.value = v; + this.key = key; + this.desc = key; + } + + public static ProfileDimension of(String key) { + for (ProfileDimension f : ProfileDimension.values()) { + if (f.key.equalsIgnoreCase(key)) { + return f; + } + } + throw new RuntimeException("invalid profile dimension key [" + key + "]"); + } + + public boolean active(int dimensions) { + return (dimensions & this.value) != 0; + } + + public static int of(ProfileDimension... dimensions) { + int r = 0; + for (ProfileDimension dimension : dimensions) { + r |= dimension.value; + } + return r; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/BaseEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/BaseEntity.java new file mode 100644 index 0000000000..5404dd0db3 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/BaseEntity.java @@ -0,0 +1,34 @@ +package org.example.jfranalyzerbackend.entity.shared; + +import jakarta.persistence.*; +import org.hibernate.annotations.CreationTimestamp; + +import java.time.LocalDateTime; + +@MappedSuperclass +public abstract class BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false, updatable = false) + @CreationTimestamp + private LocalDateTime createdTime; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public LocalDateTime getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(LocalDateTime createdTime) { + this.createdTime = createdTime; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/BaseFileEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/BaseFileEntity.java new file mode 100644 index 0000000000..da15238b82 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/BaseFileEntity.java @@ -0,0 +1,61 @@ + +package org.example.jfranalyzerbackend.entity.shared.file; + +import jakarta.persistence.*; +import org.example.jfranalyzerbackend.entity.shared.BaseEntity; +import org.example.jfranalyzerbackend.enums.FileType; + +@MappedSuperclass +public class BaseFileEntity extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(unique = true, nullable = false, updatable = false, length = 64) + private String uniqueName; + +// @ManyToOne(fetch = FetchType.LAZY) +// private UserEntity user; + + @Column(nullable = false, updatable = false, length = 256) + private String originalName; + + @Column(nullable = false, updatable = false) + @Enumerated(EnumType.STRING) + private FileType type; + + @Override + public Long getId() { + return id; + } + + @Override + public void setId(Long id) { + this.id = id; + } + + public String getUniqueName() { + return uniqueName; + } + + public void setUniqueName(String uniqueName) { + this.uniqueName = uniqueName; + } + + public String getOriginalName() { + return originalName; + } + + public void setOriginalName(String originalName) { + this.originalName = originalName; + } + + public FileType getType() { + return type; + } + + public void setType(FileType type) { + this.type = type; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/DeletedFileEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/DeletedFileEntity.java new file mode 100644 index 0000000000..40651f6e3d --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/DeletedFileEntity.java @@ -0,0 +1,35 @@ +package org.example.jfranalyzerbackend.entity.shared.file; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +import java.time.LocalDateTime; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Table(name = "deleted_files") +@Entity +public class DeletedFileEntity extends BaseFileEntity { + + @Column(nullable = false, updatable = false) + private long size; + + @Column(nullable = false, updatable = false) + private LocalDateTime originalCreatedTime; + + public long getSize() { + return size; + } + + public void setSize(long size) { + this.size = size; + } + + public LocalDateTime getOriginalCreatedTime() { + return originalCreatedTime; + } + + public void setOriginalCreatedTime(LocalDateTime originalCreatedTime) { + this.originalCreatedTime = originalCreatedTime; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/FileEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/FileEntity.java new file mode 100644 index 0000000000..b4f8100a6b --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/FileEntity.java @@ -0,0 +1,35 @@ + +package org.example.jfranalyzerbackend.entity.shared.file; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Table(name = "files") +@Entity +public class FileEntity extends BaseFileEntity { + + @Column(nullable = false, updatable = false) + private long size; + + //TODO:之后修改UserID + @Column(nullable = false, updatable = false) + private Long userId; + + public long getSize() { + return size; + } + + public void setSize(long size) { + this.size = size; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/TransferringFileEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/TransferringFileEntity.java new file mode 100644 index 0000000000..83da0fff03 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/file/TransferringFileEntity.java @@ -0,0 +1,62 @@ +package org.example.jfranalyzerbackend.entity.shared.file; + +import jakarta.persistence.*; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.LocalDateTime; + +@Table(name = "transferring_files") +@Entity +public class TransferringFileEntity extends BaseFileEntity { + + public static final int MAX_FAILURE_MESSAGE_LENGTH = 1024; + +// @Column(nullable = false) +// @Enumerated(EnumType.STRING) +// private FileTransferState transferState; + + @Column(nullable = false) + private long totalSize; + + @Column(nullable = false) + private long transferredSize; + + @Column(length = MAX_FAILURE_MESSAGE_LENGTH) + private String failureMessage; + + @Column(nullable = false) + @UpdateTimestamp + private LocalDateTime lastModifiedTime; + + public long getTotalSize() { + return totalSize; + } + + public void setTotalSize(long totalSize) { + this.totalSize = totalSize; + } + + public long getTransferredSize() { + return transferredSize; + } + + public void setTransferredSize(long transferredSize) { + this.transferredSize = transferredSize; + } + + public String getFailureMessage() { + return failureMessage; + } + + public void setFailureMessage(String failureMessage) { + this.failureMessage = failureMessage; + } + + public LocalDateTime getLastModifiedTime() { + return lastModifiedTime; + } + + public void setLastModifiedTime(LocalDateTime lastModifiedTime) { + this.lastModifiedTime = lastModifiedTime; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/ExternalLoginDataEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/ExternalLoginDataEntity.java new file mode 100644 index 0000000000..710719ba28 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/ExternalLoginDataEntity.java @@ -0,0 +1,43 @@ +package org.example.jfranalyzerbackend.entity.shared.user; + +import jakarta.persistence.*; +import org.example.jfranalyzerbackend.entity.shared.BaseEntity; + + +public class ExternalLoginDataEntity extends BaseEntity { + + @OneToOne(optional = false) + private UserEntity user; + + + + @Column(nullable = false, updatable = false, length = 32) + private String provider; + + @Column(nullable = false, updatable = false, length = 64) + private String principalName; + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public String getProvider() { + return provider; + } + + public void setProvider(String provider) { + this.provider = provider; + } + + public String getPrincipalName() { + return principalName; + } + + public void setPrincipalName(String principalName) { + this.principalName = principalName; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/LoginDataEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/LoginDataEntity.java new file mode 100644 index 0000000000..0d712d6390 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/LoginDataEntity.java @@ -0,0 +1,46 @@ +package org.example.jfranalyzerbackend.entity.shared.user; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import org.example.jfranalyzerbackend.entity.shared.BaseEntity; + +@SuppressWarnings("JpaDataSourceORMInspection") +@Entity +@Table(name = "login_data") +public class LoginDataEntity extends BaseEntity { + + @OneToOne(optional = false) + private UserEntity user; + + @Column(unique = true, nullable = false, updatable = false, length = 128) + private String username; + + @Column(length = 64) + private String passwordHash; + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPasswordHash() { + return passwordHash; + } + + public void setPasswordHash(String passwordHash) { + this.passwordHash = passwordHash; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/UserEntity.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/UserEntity.java new file mode 100644 index 0000000000..16d0fe68ee --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/entity/shared/user/UserEntity.java @@ -0,0 +1,50 @@ + +package org.example.jfranalyzerbackend.entity.shared.user; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; + +import org.example.jfranalyzerbackend.entity.shared.BaseEntity; +import org.hibernate.annotations.UpdateTimestamp; + +import java.time.LocalDateTime; + +@Entity +@Table(name = "users") +public class UserEntity extends BaseEntity { + + @Column(length = 64) + private String name; + + @Column(nullable = false) + private boolean admin; + + @Column(nullable = false) + @UpdateTimestamp + private LocalDateTime lastModifiedTime; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public LocalDateTime getLastModifiedTime() { + return lastModifiedTime; + } + + public void setLastModifiedTime(LocalDateTime lastModifiedTime) { + this.lastModifiedTime = lastModifiedTime; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/CommonErrorCode.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/CommonErrorCode.java new file mode 100644 index 0000000000..d0f1bdb226 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/CommonErrorCode.java @@ -0,0 +1,35 @@ +/******************************************************************************** + * Copyright (c) 2023 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ +package org.example.jfranalyzerbackend.enums; + + +import org.example.jfranalyzerbackend.exception.ErrorCode; + +public enum CommonErrorCode implements ErrorCode { + ILLEGAL_ARGUMENT("Illegal argument"), + + VALIDATION_FAILURE("Validation failure"), + + INTERNAL_ERROR("Internal error"); + + private final String message; + + CommonErrorCode(String message) { + this.message = message; + } + + @Override + public String message() { + return message; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/EventConstant.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/EventConstant.java new file mode 100644 index 0000000000..f75aad6ac9 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/EventConstant.java @@ -0,0 +1,45 @@ +package org.example.jfranalyzerbackend.enums; + +public abstract class EventConstant { + public static String UNSIGNED_INT_FLAG = "jdk.UnsignedIntFlag"; + public static String GARBAGE_COLLECTION = "jdk.GarbageCollection"; + + public static String CPU_INFORMATION = "jdk.CPUInformation"; + public static String CPC_RUNTIME_INFORMATION = "cpc.RuntimeInformation"; + public static String ENV_VAR = "jdk.InitialEnvironmentVariable"; + + public static String PROCESS_CPU_LOAD = "jdk.CPULoad"; + public static String ACTIVE_SETTING = "jdk.ActiveSetting"; + + public static String THREAD_START = "jdk.ThreadStart"; + public static String THREAD_CPU_LOAD = "jdk.ThreadCPULoad"; + public static String EXECUTION_SAMPLE = "jdk.ExecutionSample"; + public static String WALL_CLOCK_SAMPLE = "jdk.ExecutionSample"; + public static String NATIVE_EXECUTION_SAMPLE = "jdk.NativeMethodSample"; + public static String EXECUTE_VM_OPERATION = "jdk.ExecuteVMOperation"; + + public static String OBJECT_ALLOCATION_SAMPLE = "jdk.ObjectAllocationSample"; + public static String OBJECT_ALLOCATION_IN_NEW_TLAB = "jdk.ObjectAllocationInNewTLAB"; + public static String OBJECT_ALLOCATION_OUTSIDE_TLAB = "jdk.ObjectAllocationOutsideTLAB"; + + public static String FILE_WRITE = "jdk.FileWrite"; + public static String FILE_READ = "jdk.FileRead"; + public static String FILE_FORCE = "jdk.FileForce"; + + public static String SOCKET_READ = "jdk.SocketRead"; + public static String SOCKET_WRITE = "jdk.SocketWrite"; + + public static String JAVA_MONITOR_ENTER = "jdk.JavaMonitorEnter"; + public static String JAVA_MONITOR_WAIT = "jdk.JavaMonitorWait"; + public static String THREAD_PARK = "jdk.ThreadPark"; + + public static String CLASS_LOAD = "jdk.ClassLoad"; + + public static String THREAD_SLEEP = "jdk.ThreadSleep"; + + public static String PERIOD = "period"; + + public static String INTERVAL = "interval"; + public static String WALL = "wall"; + public static String EVENT = "event"; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/FileType.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/FileType.java new file mode 100644 index 0000000000..36b9889a5b --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/FileType.java @@ -0,0 +1,43 @@ +package org.example.jfranalyzerbackend.enums; + +import static org.example.jfranalyzerbackend.exception.CommonException.CE; + +public enum FileType { + + + JFR, LOG, OTHER +// JFR_FILE("jfr-file"); + +// private final String storageDirectoryName; +// +// private final String apiNamespace; +// +// private final String analysisUrlPath; +// +// FileType(String tag) { +// storageDirectoryName = tag; +// apiNamespace = tag; +// analysisUrlPath = tag + "-analysis"; +// } +// +// public String getStorageDirectoryName() { +// return storageDirectoryName; +// } +// +// public String getApiNamespace() { +// return apiNamespace; +// } +// +// public String getAnalysisUrlPath() { +// return analysisUrlPath; +// } +// +// public static FileType getByApiNamespace(String expected) { +// for (FileType type : FileType.values()) { +// if (expected.equals(type.apiNamespace)) { +// return type; +// } +// } +// throw CE(ServerErrorCode.UNSUPPORTED_NAMESPACE); +// } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/ServerErrorCode.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/ServerErrorCode.java new file mode 100644 index 0000000000..3fddb32585 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/ServerErrorCode.java @@ -0,0 +1,36 @@ + +package org.example.jfranalyzerbackend.enums; + + +import org.example.jfranalyzerbackend.exception.ErrorCode; + +public enum ServerErrorCode implements ErrorCode { + UNAVAILABLE("Unavailable"), + USER_NOT_FOUND("User not found"), + USERNAME_EXISTS("Username exists"), + INCORRECT_PASSWORD("Incorrect password"), + ACCESS_DENIED("Access denied"), + FILE_NOT_FOUND("File not found"), + FILE_DELETED("File deleted"), + UNSUPPORTED_NAMESPACE("Unsupported namespace"), + UNSUPPORTED_API("Unsupported API"), + FILE_TRANSFER_INCOMPLETE("File transfer incomplete"), + FILE_TYPE_MISMATCH("File type mismatch"), + FILE_TRANSFER_METHOD_DISABLED("File transfer method disabled"), + STATIC_WORKER_UNAVAILABLE("Static worker Unavailable"), + ELASTIC_WORKER_NOT_READY("Elastic worker not ready"), + ELASTIC_WORKER_STARTUP_FAILURE("Elastic worker startup failure"), + NO_AVAILABLE_LOCATION("No available location"), + ; + + private final String message; + + ServerErrorCode(String message) { + this.message = message; + } + + @Override + public String message() { + return message; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/Unit.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/Unit.java new file mode 100644 index 0000000000..e00e052821 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/enums/Unit.java @@ -0,0 +1,23 @@ +package org.example.jfranalyzerbackend.enums; + + +import org.example.jfranalyzerbackend.annotation.UseGsonEnumAdaptor; + +@UseGsonEnumAdaptor +public enum Unit { + NANO_SECOND("ns"), + + BYTE("byte"), + + COUNT("count"); + + private final String tag; + + Unit(String tag) { + this.tag = tag; + } + + public String toString() { + return tag; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/CommonException.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/CommonException.java new file mode 100644 index 0000000000..aac11347ce --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/CommonException.java @@ -0,0 +1,59 @@ + +package org.example.jfranalyzerbackend.exception; + + +import static org.example.jfranalyzerbackend.enums.CommonErrorCode.INTERNAL_ERROR; + +/** + * Common Exception. + * Use this exception when you don't know what exception to use. + */ +public class CommonException extends ErrorCodeException { + + /** + * Create a new CommonException. + * + * @param errorCode error code + * @param message message + */ + public CommonException(ErrorCode errorCode, String message) { + super(errorCode, message); + } + + /** + * Create a new CommonException. + * + * @param errorCode error code + */ + public CommonException(ErrorCode errorCode) { + super(errorCode); + } + + /** + * Create a new CommonException. + * + * @param message message + */ + public CommonException(String message) { + super(INTERNAL_ERROR, message); + } + + /** + * Create a new CommonException. + * + * @param throwable cause + */ + public CommonException(Throwable throwable) { + super(INTERNAL_ERROR, throwable); + } + + /** + * a shortcut for new CommonException(errorCode) + * + * @param errorCode error code + * @return new common exception + */ + public static CommonException CE(ErrorCode errorCode) { + return new CommonException(errorCode); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCode.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCode.java new file mode 100644 index 0000000000..8e6611d67e --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCode.java @@ -0,0 +1,26 @@ + +package org.example.jfranalyzerbackend.exception; + +/** + * An error code is normally an enum instance. + * Since it is not appropriate to define all error codes in a single enum class (different modules may have different error codes), + * we define this interface to represent an error code. + */ +public interface ErrorCode { + /** + * @return the identifier of this error code + */ + default String identifier() { + return name(); + } + + /** + * @return the name of this error code + */ + String name(); + + /** + * @return the message of this error code + */ + String message(); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCodeAccessor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCodeAccessor.java new file mode 100644 index 0000000000..f84dcd5400 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCodeAccessor.java @@ -0,0 +1,12 @@ +package org.example.jfranalyzerbackend.exception; + +/** + * All instances of this interface should have a corresponding error code. + */ +public interface ErrorCodeAccessor { + + /** + * @return the error code + */ + ErrorCode getErrorCode(); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCodeException.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCodeException.java new file mode 100644 index 0000000000..1052ae2624 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ErrorCodeException.java @@ -0,0 +1,64 @@ +package org.example.jfranalyzerbackend.exception; + +/** + * The super class of all exceptions that have an {@link ErrorCode}. + */ +public class ErrorCodeException extends RuntimeException implements ErrorCodeAccessor { + + /** + * error code + */ + private final ErrorCode errorCode; + + /** + * Create a new ErrorCodeException with a specified error code + * + * @param errorCode error code + */ + public ErrorCodeException(ErrorCode errorCode) { + super(errorCode.message()); + this.errorCode = errorCode; + } + + /** + * Create a new ErrorCodeException with a specified error code and a message + * + * @param errorCode error code + * @param message message + */ + public ErrorCodeException(ErrorCode errorCode, String message) { + super(message); + this.errorCode = errorCode; + } + + /** + * Create a new ErrorCodeException with a specified error code and a cause + * + * @param errorCode error code + * @param cause cause + */ + public ErrorCodeException(ErrorCode errorCode, Throwable cause) { + super(cause); + this.errorCode = errorCode; + } + + /** + * Create a new ErrorCodeException with a specified error code, a message and a cause + * + * @param errorCode error code + * @param message message + * @param cause cause + */ + public ErrorCodeException(ErrorCode errorCode, String message, Throwable cause) { + super(message, cause); + this.errorCode = errorCode; + } + + /** + * @return the error code + */ + @Override + public ErrorCode getErrorCode() { + return errorCode; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ProfileAnalysisException.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ProfileAnalysisException.java new file mode 100644 index 0000000000..2c645e7d5f --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/exception/ProfileAnalysisException.java @@ -0,0 +1,15 @@ +package org.example.jfranalyzerbackend.exception; + +public class ProfileAnalysisException extends Exception{ + public ProfileAnalysisException(String message, Throwable cause) { + super(message, cause); + } + + public ProfileAnalysisException(Throwable cause) { + super(cause); + } + + public ProfileAnalysisException(String message) { + super(message); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/AllocatedMemoryExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/AllocatedMemoryExtractor.java new file mode 100644 index 0000000000..646b48691a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/AllocatedMemoryExtractor.java @@ -0,0 +1,105 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.Task; +import org.example.jfranalyzerbackend.model.TaskAllocatedMemory; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.util.StackTraceUtil; + + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class AllocatedMemoryExtractor extends AllocationsExtractor { + public AllocatedMemoryExtractor(JFRAnalysisContext context) { + super(context); + } + + @Override + void visitObjectAllocationInNewTLAB(RecordedEvent event) { + if (this.useObjectAllocationSample) { + return; + } + this.visitTLABEvent(event, "tlabSize"); + } + + @Override + void visitObjectAllocationOutsideTLAB(RecordedEvent event) { + if (this.useObjectAllocationSample) { + return; + } + this.visitTLABEvent(event, "allocationSize"); + } + + @Override + void visitObjectAllocationSample(RecordedEvent event) { + this.visitTLABEvent(event, "weight"); + } + + void visitTLABEvent(RecordedEvent event, String fieldName) { + RecordedStackTrace stackTrace = event.getStackTrace(); + if (stackTrace == null) { + stackTrace = StackTraceUtil.DUMMY_STACK_TRACE; + } + + AllocationsExtractor.AllocTaskData allocThreadData = getThreadData(event.getThread()); + if (allocThreadData.getSamples() == null) { + allocThreadData.setSamples(new HashMap<>()); + } + + long eventTotal = event.getLong(fieldName); + + allocThreadData.getSamples().compute(stackTrace, (k, temp) -> temp == null ? eventTotal : temp + eventTotal); + allocThreadData.allocatedMemory += eventTotal; + } + + private List buildThreadAllocatedMemory() { + List taskAllocatedMemoryList = new ArrayList<>(); + + for (AllocTaskData data : this.data.values()) { + if (data.allocatedMemory == 0) { + continue; + } + + TaskAllocatedMemory taskAllocatedMemory = new TaskAllocatedMemory(); + Task ta = new Task(); + ta.setId(data.getThread().getJavaThreadId()); + ta.setName(data.getThread().getJavaName()); + taskAllocatedMemory.setTask(ta); + + if (data.getSamples() != null) { + taskAllocatedMemory.setAllocatedMemory(data.allocatedMemory); + taskAllocatedMemory.setSamples(data.getSamples().entrySet().stream().collect( + Collectors.toMap( + e -> StackTraceUtil.build(e.getKey(), context.getSymbols()), + Map.Entry::getValue, + Long::sum) + )); + } + + taskAllocatedMemoryList.add(taskAllocatedMemory); + } + + taskAllocatedMemoryList.sort((o1, o2) -> { + long delta = o2.getAllocatedMemory() - o1.getAllocatedMemory(); + return delta > 0 ? 1 : (delta == 0 ? 0 : -1); + }); + + return taskAllocatedMemoryList; + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult memResult = new DimensionResult<>(); + memResult.setList(buildThreadAllocatedMemory()); + result.setAllocatedMemory(memResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/AllocationsExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/AllocationsExtractor.java new file mode 100644 index 0000000000..d5c6108779 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/AllocationsExtractor.java @@ -0,0 +1,130 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.*; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.model.jfr.RecordedThread; +import org.example.jfranalyzerbackend.util.StackTraceUtil; + +import java.util.*; +import java.util.stream.Collectors; + +import static org.example.jfranalyzerbackend.enums.EventConstant.OBJECT_ALLOCATION_SAMPLE; + + +public class AllocationsExtractor extends Extractor { + protected boolean useObjectAllocationSample; + + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.OBJECT_ALLOCATION_IN_NEW_TLAB); + add(EventConstant.OBJECT_ALLOCATION_OUTSIDE_TLAB); + add(OBJECT_ALLOCATION_SAMPLE); + } + }); + + protected static class AllocTaskData extends TaskData { + AllocTaskData(RecordedThread thread) { + super(thread); + } + + public long allocations; + + public long allocatedMemory; + } + + protected final Map data = new HashMap<>(); + + public AllocationsExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + try { + this.useObjectAllocationSample = this.context.getActiveSettingBool(OBJECT_ALLOCATION_SAMPLE, "enabled"); + } catch (Exception e) { + this.useObjectAllocationSample = false; + } + } + + AllocTaskData getThreadData(RecordedThread thread) { + return data.computeIfAbsent(thread.getJavaThreadId(), i -> new AllocTaskData(thread)); + } + + @Override + void visitObjectAllocationInNewTLAB(RecordedEvent event) { + if (useObjectAllocationSample) { + return; + } + visitEvent(event); + } + + @Override + void visitObjectAllocationOutsideTLAB(RecordedEvent event) { + if (useObjectAllocationSample) { + return; + } + this.visitEvent(event); + } + + @Override + void visitObjectAllocationSample(RecordedEvent event) { + this.visitEvent(event); + } + + void visitEvent(RecordedEvent event) { + RecordedStackTrace stackTrace = event.getStackTrace(); + if (stackTrace == null) { + stackTrace = StackTraceUtil.DUMMY_STACK_TRACE; + } + + AllocTaskData allocThreadData = getThreadData(event.getThread()); + if (allocThreadData.getSamples() == null) { + allocThreadData.setSamples(new HashMap<>()); + } + + allocThreadData.getSamples().compute(stackTrace, (k, count) -> count == null ? 1 : count + 1); + allocThreadData.allocations += 1; + } + + private List buildThreadAllocations() { + List taskAllocations = new ArrayList<>(); + for (AllocTaskData data : this.data.values()) { + if (data.allocations == 0) { + continue; + } + + TaskAllocations threadAllocation = new TaskAllocations(); + Task ta = new Task(); + ta.setId(data.getThread().getJavaThreadId()); + ta.setName(data.getThread().getJavaName()); + threadAllocation.setTask(ta); + + if (data.getSamples() != null) { + threadAllocation.setAllocations(data.allocations); + threadAllocation.setSamples(data.getSamples().entrySet().stream().collect( + Collectors.toMap( + e -> StackTraceUtil.build(e.getKey(), context.getSymbols()), + Map.Entry::getValue, + Long::sum) + )); + } + + taskAllocations.add(threadAllocation); + } + + taskAllocations.sort((o1, o2) -> { + long delta = o2.getAllocations() - o1.getAllocations(); + return delta > 0 ? 1 : (delta == 0 ? 0 : -1); + }); + + return taskAllocations; + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult allocResult = new DimensionResult<>(); + allocResult.setList(buildThreadAllocations()); + result.setAllocations(allocResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CPUSampleExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CPUSampleExtractor.java new file mode 100644 index 0000000000..0f6b378b56 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CPUSampleExtractor.java @@ -0,0 +1,59 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskCount; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class CPUSampleExtractor extends CountExtractor { + private boolean isWallClockEvents = false; + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList() { + { + add(EventConstant.EXECUTION_SAMPLE); + add(EventConstant.ACTIVE_SETTING); + } + }); + + public CPUSampleExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitExecutionSample(RecordedEvent event) { + visitEvent(event); + } + + @Override + void visitActiveSetting(RecordedEvent event) { + if (this.context.isExecutionSampleEventTypeId(event.getActiveSetting().eventId())) { + if (EventConstant.WALL.equals(event.getString("name"))) { + this.isWallClockEvents = true; + } + } + if (EventConstant.EVENT.equals(event.getString("name")) && EventConstant.WALL.equals(event.getString("value"))) { + this.isWallClockEvents = true; + } + } + + public List buildTaskCounts() { + if (this.isWallClockEvents) { + return new ArrayList<>(); + } else { + return super.buildTaskCounts(); + } + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskCounts()); + result.setCpuSample(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CPUTimeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CPUTimeExtractor.java new file mode 100644 index 0000000000..107e2609a7 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CPUTimeExtractor.java @@ -0,0 +1,308 @@ + +package org.example.jfranalyzerbackend.extractor; + +import lombok.extern.slf4j.Slf4j; +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.*; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.model.jfr.RecordedThread; +import org.example.jfranalyzerbackend.util.GCUtil; +import org.example.jfranalyzerbackend.util.StackTraceUtil; +import org.example.jfranalyzerbackend.util.TimeUtil; + + +import java.time.Duration; +import java.time.Instant; +import java.util.*; +import java.util.stream.Collectors; + +@Slf4j +public class CPUTimeExtractor extends Extractor { + + private static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.UNSIGNED_INT_FLAG); + add(EventConstant.GARBAGE_COLLECTION); + add(EventConstant.ACTIVE_SETTING); + add(EventConstant.CPU_INFORMATION); + add(EventConstant.ENV_VAR); + add(EventConstant.THREAD_START); + add(EventConstant.THREAD_CPU_LOAD); + add(EventConstant.EXECUTION_SAMPLE); + } + }); + + private static class CpuTaskData extends TaskData { + CpuTaskData(RecordedThread thread) { + super(thread); + } + + Instant start; + + long user = 0; + + long system = 0; + + long sampleCount; + + boolean firstThreadCPULoadEventIsFired; + } + + private static final int ASYNC_PROFILER_DEFAULT_INTERVAL = 10 * 1000 * 1000; + private final Map data = new HashMap<>(); + + private long period = -1; + + private long threadCPULoadEventId = -1; + private boolean profiledByJFR = true; + + private int cpuCores; + private long intervalAsyncProfiler; // unit: nano + private long intervalJFR; // unit: nano + + private int concurrentGCThreads = -1; + private int parallelGCThreads = -1; + private long concurrentGCWallTime = 0; + private long parallelGCWallTime = 0; + private long serialGCWallTime = 0; + + private boolean isWallClockEvents = false; + + + private static final RecordedThread DUMMY_THREAD = new RecordedThread("Dummy Thread", -1L, -1L); + private static final RecordedThread GC_THREAD = new RecordedThread("GC Thread", -10L, -10L); + + public CPUTimeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + + Long id = context.getEventTypeId(EventConstant.THREAD_CPU_LOAD); + if (id != null) { + threadCPULoadEventId = id; + } + } + + CpuTaskData getThreadData(RecordedThread thread) { + return data.computeIfAbsent(thread.getJavaThreadId(), i -> new CpuTaskData(thread)); + } + + private void updatePeriod(String value) { + period = TimeUtil.parseTimespan(value); + } + + @Override + void visitUnsignedIntFlag(RecordedEvent event) { + String name = event.getString("name"); + if ("ConcGCThreads".equals(name)) { + concurrentGCThreads = event.getInt("value"); + } else if ("ParallelGCThreads".equals(name)) { + parallelGCThreads = event.getInt("value"); + } + } + + @Override + void visitGarbageCollection(RecordedEvent event) { + String name = event.getString("name"); + long duration = event.getDuration().toNanos(); + + if (GCUtil.isParallelGC(name)) { + parallelGCWallTime += duration; + } else if (GCUtil.isConcGC(name)) { + concurrentGCWallTime += duration; + } else if (GCUtil.isSerialGC(name)) { + serialGCWallTime += duration; + } + } + + @Override + void visitActiveSetting(RecordedEvent event) { + if (event.getActiveSetting().eventId() == threadCPULoadEventId + && EventConstant.PERIOD.equals(event.getString("name"))) { + updatePeriod(event.getValue("value")); + } + + if (EventConstant.EVENT.equals(event.getString("name")) && EventConstant.WALL.equals(event.getString("value"))) { + this.isWallClockEvents = true; + } + + if (this.context.isExecutionSampleEventTypeId(event.getActiveSetting().eventId())) { + if (EventConstant.WALL.equals(event.getString("name"))) { + this.isWallClockEvents = true; + } else if (EventConstant.INTERVAL.equals(event.getString("name"))) { + // async-profiler is "interval" + this.intervalAsyncProfiler = Long.parseLong(event.getString("value")); + this.profiledByJFR = false; + } else if (EventConstant.PERIOD.equals(event.getString("name"))) { + // JFR is "period" + try { + this.intervalJFR = TimeUtil.parseTimespan(event.getString("value")); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + } + } + + @Override + void visitCPUInformation(RecordedEvent event) { + if (cpuCores == 0) { + cpuCores = event.getInt("hwThreads"); + } + } + + @Override + void visitEnvVar(RecordedEvent event) { + if ("CPU_COUNT".equals(event.getString("key"))) { + cpuCores = Integer.parseInt(event.getString("value")); + } + } + + @Override + void visitThreadStart(RecordedEvent event) { + if (event.getThread() == null) { + return; + } + CpuTaskData cpuTaskData = getThreadData(event.getThread()); + cpuTaskData.start = event.getStartTime(); + } + + @Override + void visitThreadCPULoad(RecordedEvent event) { + if (event.getThread() == null) { + return; + } + CpuTaskData cpuTaskData = getThreadData(event.getThread()); + long nanos = period; + if (!cpuTaskData.firstThreadCPULoadEventIsFired) { + if (cpuTaskData.start != null) { + Duration between = Duration.between(cpuTaskData.start, event.getStartTime()); + nanos = Math.min(nanos, between.toNanos()); + } + cpuTaskData.firstThreadCPULoadEventIsFired = true; + } + cpuTaskData.user += (long) (event.getFloat("user") * nanos); + cpuTaskData.system += (long) (event.getFloat("system") * nanos); + } + + @Override + void visitExecutionSample(RecordedEvent event) { + RecordedStackTrace stackTrace = event.getStackTrace(); + if (stackTrace == null) { + stackTrace = StackTraceUtil.DUMMY_STACK_TRACE; + } + + RecordedThread thread = event.getThread("eventThread"); + if (thread == null) { + thread = event.getThread("sampledThread"); + } + if (thread == null) { + thread = DUMMY_THREAD; + } + CpuTaskData cpuTaskData = getThreadData(thread); + + if (cpuTaskData.getSamples() == null) { + cpuTaskData.setSamples(new HashMap<>()); + } + + cpuTaskData.getSamples().compute(stackTrace, (k, count) -> count == null ? 1 : count + 1); + cpuTaskData.sampleCount++; + } + + private List buildThreadCPUTime() { + List threadCPUTimes = new ArrayList<>(); + if (this.isWallClockEvents) { + return threadCPUTimes; + } + for (CpuTaskData data : this.data.values()) { + if (data.getSamples() == null) { + continue; + } + JavaThreadCPUTime threadCPUTime = new JavaThreadCPUTime(); + threadCPUTime.setTask(context.getThread(data.getThread())); + + if (data.getSamples() != null) { + if (this.profiledByJFR) { + if (intervalJFR <= 0) { + throw new RuntimeException("need profiling interval to calculate approximate CPU time"); + } + long cpuTimeMax = (data.user + data.system) * cpuCores; + long sampleTime = data.sampleCount * intervalJFR; + if (cpuTimeMax == 0) { + threadCPUTime.setUser(sampleTime); + } else { + threadCPUTime.setUser(Math.min(sampleTime, cpuTimeMax)); + } + threadCPUTime.setSystem(0); + } else { + if (intervalAsyncProfiler <= 0) { + intervalAsyncProfiler = detectAsyncProfilerInterval(); + } + threadCPUTime.setUser(data.sampleCount * intervalAsyncProfiler); + threadCPUTime.setSystem(0); + } + + threadCPUTime.setSamples(data.getSamples().entrySet().stream().collect( + Collectors.toMap( + e -> StackTraceUtil.build(e.getKey(), context.getSymbols()), + Map.Entry::getValue, + Long::sum) + )); + } + + threadCPUTimes.add(threadCPUTime); + } + + if (this.profiledByJFR) { + long gcTime = buildGCCpuTime(); + if (gcTime > 0) { + JavaThreadCPUTime gc = new JavaThreadCPUTime(); + gc.setTask(context.getThread(GC_THREAD)); + gc.setUser(gcTime); + Map gcSamples = new HashMap<>(); + gcSamples.put(StackTraceUtil.build(StackTraceUtil.newDummyStackTrace("", "JVM", "GC"), context.getSymbols()), 1L); + gc.setSamples(gcSamples); + threadCPUTimes.add(gc); + } + } + + threadCPUTimes.sort((o1, o2) -> { + long delta = o2.totalCPUTime() - o1.totalCPUTime(); + return delta > 0 ? 1 : (delta == 0 ? 0 : -1); + }); + return threadCPUTimes; + } + + private long buildGCCpuTime() { + if (parallelGCThreads < 0 || concurrentGCThreads < 0) { + log.warn("invalid ParallelGCThreads or ConcurrentGCThreads, GC cpu time can not be calculated"); + return -1; + } else { + return parallelGCThreads * parallelGCWallTime + concurrentGCThreads * concurrentGCWallTime + serialGCWallTime; + } + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult cpuResult = new DimensionResult<>(); + List list = buildThreadCPUTime(); + cpuResult.setList(list); + result.setCpuTime(cpuResult); + } + + private static long detectAsyncProfilerInterval() { + long interval = 0; + String intervalStr = System.getProperty("asyncProfilerCpuIntervalMs"); + if (intervalStr != null && !intervalStr.isEmpty()) { + try { + interval = Long.parseLong(intervalStr) * 1000 * 1000; + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + if (interval <= 0) { + log.info("use default cpu interval 10ms"); + interval = ASYNC_PROFILER_DEFAULT_INTERVAL; + } + return interval; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ClassLoadCountExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ClassLoadCountExtractor.java new file mode 100644 index 0000000000..8d2007028a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ClassLoadCountExtractor.java @@ -0,0 +1,38 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskCount; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ClassLoadCountExtractor extends CountExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.CLASS_LOAD); + } + }); + + public ClassLoadCountExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitClassLoad(RecordedEvent event) { + visitEvent(event); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskCounts()); + result.setClassLoadCount(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ClassLoadWallTimeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ClassLoadWallTimeExtractor.java new file mode 100644 index 0000000000..bf017849d8 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ClassLoadWallTimeExtractor.java @@ -0,0 +1,37 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ClassLoadWallTimeExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.CLASS_LOAD); + } + }); + + public ClassLoadWallTimeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitClassLoad(RecordedEvent event) { + visitEvent(event, event.getDurationNano()); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setClassLoadWallTime(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CountExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CountExtractor.java new file mode 100644 index 0000000000..c44c802dba --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/CountExtractor.java @@ -0,0 +1,86 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.model.Task; +import org.example.jfranalyzerbackend.model.TaskCount; +import org.example.jfranalyzerbackend.model.TaskData; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.model.jfr.RecordedThread; +import org.example.jfranalyzerbackend.util.StackTraceUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public abstract class CountExtractor extends Extractor { + CountExtractor(JFRAnalysisContext context, List interested) { + super(context, interested); + } + + public static class TaskCountData extends TaskData { + TaskCountData(RecordedThread thread) { + super(thread); + } + + long count; + } + + protected final Map data = new HashMap<>(); + + TaskCountData getTaskCountData(RecordedThread thread) { + return data.computeIfAbsent(thread.getJavaThreadId(), i -> new TaskCountData(thread)); + } + + protected void visitEvent(RecordedEvent event) { + RecordedStackTrace stackTrace = event.getStackTrace(); + if (stackTrace == null) { + return; + } + + TaskCountData data = getTaskCountData(event.getThread()); + if (data.getSamples() == null) { + data.setSamples(new HashMap<>()); + } + + data.getSamples().compute(stackTrace, (k, tmp) -> tmp == null ? 1 : tmp + 1); + data.count += 1; + } + + public List buildTaskCounts() { + List counts = new ArrayList<>(); + for (TaskCountData data : this.data.values()) { + if (data.count == 0) { + continue; + } + + TaskCount ts = new TaskCount(); + Task ta = new Task(); + ta.setId(data.getThread().getJavaThreadId()); + ta.setName(context.getThread(data.getThread()).getName()); + ts.setTask(ta); + + if (data.getSamples() != null) { + ts.setCount(data.count); + ts.setSamples(data.getSamples().entrySet().stream().collect( + Collectors.toMap( + e -> StackTraceUtil.build(e.getKey(), context.getSymbols()), + Map.Entry::getValue, + Long::sum) + )); + } + + counts.add(ts); + } + + counts.sort((o1, o2) -> { + long delta = o2.getCount() - o1.getCount(); + return delta > 0 ? 1 : (delta == 0 ? 0 : -1); + }); + + return counts; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/EventVisitor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/EventVisitor.java new file mode 100644 index 0000000000..34cb0a72ad --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/EventVisitor.java @@ -0,0 +1,103 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +public abstract class EventVisitor { + void visitUnsignedIntFlag(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitGarbageCollection(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitCPUInformation(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitEnvVar(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitCPCRuntimeInformation(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitActiveSetting(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitThreadStart(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitProcessCPULoad(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitThreadCPULoad(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitExecutionSample(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitNativeExecutionSample(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitExecuteVMOperation(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitObjectAllocationInNewTLAB(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitObjectAllocationOutsideTLAB(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitObjectAllocationSample(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitFileRead(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitFileWrite(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitFileForce(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitSocketRead(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitSocketWrite(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitMonitorEnter(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitThreadPark(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitClassLoad(RecordedEvent event) { + throw new UnsupportedOperationException(); + } + + void visitThreadSleep(RecordedEvent event) { + throw new UnsupportedOperationException(); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/Extractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/Extractor.java new file mode 100644 index 0000000000..a5cef70c32 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/Extractor.java @@ -0,0 +1,70 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; + +public abstract class Extractor extends EventVisitor { + private static final Map> DISPATCHER = new HashMap<>() { + { + put(EventConstant.GARBAGE_COLLECTION, EventVisitor::visitGarbageCollection); + put(EventConstant.UNSIGNED_INT_FLAG, EventVisitor::visitUnsignedIntFlag); + put(EventConstant.CPU_INFORMATION, EventVisitor::visitCPUInformation); + put(EventConstant.CPC_RUNTIME_INFORMATION, EventVisitor::visitCPCRuntimeInformation); + put(EventConstant.ENV_VAR, EventVisitor::visitEnvVar); + put(EventConstant.ACTIVE_SETTING, EventVisitor::visitActiveSetting); + put(EventConstant.THREAD_START, EventVisitor::visitThreadStart); + put(EventConstant.THREAD_CPU_LOAD, EventVisitor::visitThreadCPULoad); + put(EventConstant.PROCESS_CPU_LOAD, EventVisitor::visitProcessCPULoad); + put(EventConstant.EXECUTION_SAMPLE, EventVisitor::visitExecutionSample); + put(EventConstant.NATIVE_EXECUTION_SAMPLE, EventVisitor::visitNativeExecutionSample); + put(EventConstant.EXECUTE_VM_OPERATION, EventVisitor::visitExecuteVMOperation); + put(EventConstant.OBJECT_ALLOCATION_IN_NEW_TLAB, EventVisitor::visitObjectAllocationInNewTLAB); + put(EventConstant.OBJECT_ALLOCATION_OUTSIDE_TLAB, EventVisitor::visitObjectAllocationOutsideTLAB); + put(EventConstant.OBJECT_ALLOCATION_SAMPLE, EventVisitor::visitObjectAllocationSample); + + put(EventConstant.FILE_FORCE, EventVisitor::visitFileForce); + put(EventConstant.FILE_READ, EventVisitor::visitFileRead); + put(EventConstant.FILE_WRITE, EventVisitor::visitFileWrite); + + put(EventConstant.SOCKET_READ, EventVisitor::visitSocketRead); + put(EventConstant.SOCKET_WRITE, EventVisitor::visitSocketWrite); + + put(EventConstant.JAVA_MONITOR_ENTER, EventVisitor::visitMonitorEnter); + put(EventConstant.THREAD_PARK, EventVisitor::visitThreadPark); + + put(EventConstant.CLASS_LOAD, EventVisitor::visitClassLoad); + + put(EventConstant.THREAD_SLEEP, EventVisitor::visitThreadSleep); + } + }; + + final JFRAnalysisContext context; + + private final List interested; + + Extractor(JFRAnalysisContext context, List interested) { + this.context = context; + this.interested = interested; + } + + private boolean accept(RecordedEvent event) { + return interested.contains(event.getEventType().name()); + } + + public void process(RecordedEvent event) { + if (accept(event)) { + DISPATCHER.get(event.getEventType().name()).accept(this, event); + } + } + + public abstract void fillResult(AnalysisResult result); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileIOExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileIOExtractor.java new file mode 100644 index 0000000000..6dd11b73d5 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileIOExtractor.java @@ -0,0 +1,10 @@ + +package org.example.jfranalyzerbackend.extractor; + +import java.util.List; + +public abstract class FileIOExtractor extends SumExtractor { + FileIOExtractor(JFRAnalysisContext context, List interested) { + super(context, interested); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileIOTimeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileIOTimeExtractor.java new file mode 100644 index 0000000000..6b0fe3d029 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileIOTimeExtractor.java @@ -0,0 +1,54 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class FileIOTimeExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.FILE_READ); + add(EventConstant.FILE_WRITE); + add(EventConstant.FILE_FORCE); + } + }); + + public FileIOTimeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitFileRead(RecordedEvent event) { + visitEvent(event); + } + + @Override + void visitFileWrite(RecordedEvent event) { + visitEvent(event); + } + + @Override + void visitFileForce(RecordedEvent event) { + visitEvent(event); + } + + private void visitEvent(RecordedEvent event) { + long eventValue = event.getDurationNano(); + visitEvent(event, eventValue); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setFileIOTime(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileReadExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileReadExtractor.java new file mode 100644 index 0000000000..154d84f764 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileReadExtractor.java @@ -0,0 +1,39 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class FileReadExtractor extends FileIOExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.FILE_READ); + } + }); + + public FileReadExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitFileRead(RecordedEvent event) { + long bytes = event.getLong("bytesRead"); + visitEvent(event, bytes); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setFileReadSize(tsResult); + } +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileWriteExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileWriteExtractor.java new file mode 100644 index 0000000000..fe1688d7b5 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/FileWriteExtractor.java @@ -0,0 +1,38 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class FileWriteExtractor extends FileIOExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.FILE_WRITE); + } + }); + + public FileWriteExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitFileWrite(RecordedEvent event) { + long bytes = event.getLong("bytesWritten"); + visitEvent(event, bytes); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setFileWriteSize(tsResult); + } +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/JFRAnalysisContext.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/JFRAnalysisContext.java new file mode 100644 index 0000000000..e9dda88d17 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/JFRAnalysisContext.java @@ -0,0 +1,88 @@ + +package org.example.jfranalyzerbackend.extractor; + +import lombok.Getter; +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.JavaThread; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.model.jfr.RecordedThread; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; +import org.example.jfranalyzerbackend.model.symbol.SymbolTable; +import org.example.jfranalyzerbackend.request.AnalysisRequest; + + +import java.util.*; + +import static org.example.jfranalyzerbackend.enums.EventConstant.OBJECT_ALLOCATION_SAMPLE; + + +public class JFRAnalysisContext { + private final Map eventTypeIds = new HashMap<>(); + private final Map activeSettings = new HashMap<>(); + private final Map threads = new HashMap<>(); + private final Map threadNameMap = new HashMap<>(); + @Getter + private final List events = new ArrayList<>(); + @Getter + private final SymbolTable symbols = new SymbolTable<>(); + @Getter + private final AnalysisRequest request; + @Getter + private final Set executionSampleEventTypeIds = new HashSet<>(); + + public JFRAnalysisContext(AnalysisRequest request) { + this.request = request; + } + + public synchronized Long getEventTypeId(String event) { + return eventTypeIds.get(event); + } + + public synchronized void putEventTypeId(String key, Long id) { + eventTypeIds.put(key, id); + if (EventConstant.EXECUTION_SAMPLE.equals(key)) { + executionSampleEventTypeIds.add(id); + } + } + + public synchronized void putActiveSetting(RecordedEvent.ActiveSetting activeSetting, RecordedEvent event) { + this.activeSettings.put(activeSetting, event.getString("value")); + } + + public synchronized boolean getActiveSettingBool(String eventName, String settingName) { + Long eventId = this.getEventTypeId(OBJECT_ALLOCATION_SAMPLE); + RecordedEvent.ActiveSetting setting = new RecordedEvent.ActiveSetting(eventName, eventId, settingName); + String v = this.activeSettings.get(setting); + if (v != null) { + return Boolean.parseBoolean(v); + } + throw new RuntimeException("should not reach here"); + } + + public synchronized boolean isExecutionSampleEventTypeId(long id) { + return executionSampleEventTypeIds.contains(id); + } + + public synchronized JavaThread getThread(RecordedThread thread) { + return threads.computeIfAbsent(thread.getJavaThreadId(), id -> { + JavaThread javaThread = new JavaThread(); + javaThread.setId(id); + javaThread.setJavaId(thread.getJavaThreadId()); + javaThread.setOsId(thread.getOSThreadId()); + + String name = thread.getJavaName(); + if (id < 0) { + Long sequence = threadNameMap.compute(thread.getJavaName(), (k, v) -> v == null ? 0 : v + 1); + if (sequence > 0) { + name += "-" + sequence; + } + } + javaThread.setName(name); + return javaThread; + }); + } + + public synchronized void addEvent(RecordedEvent event) { + this.events.add(event); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/NativeExecutionExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/NativeExecutionExtractor.java new file mode 100644 index 0000000000..34b6ec2eed --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/NativeExecutionExtractor.java @@ -0,0 +1,79 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.Task; +import org.example.jfranalyzerbackend.model.TaskCount; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.util.StackTraceUtil; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class NativeExecutionExtractor extends CountExtractor { + + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.NATIVE_EXECUTION_SAMPLE); + } + }); + + public NativeExecutionExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitNativeExecutionSample(RecordedEvent event) { + visitEvent(event); + } + + private List buildTaskExecutionSamples() { + List nativeSamples = new ArrayList<>(); + + for (TaskCountData data : this.data.values()) { + if (data.count == 0) { + continue; + } + + TaskCount threadSamples = new TaskCount(); + Task ta = new Task(); + ta.setId(data.getThread().getJavaThreadId()); + ta.setName(data.getThread().getJavaName()); + threadSamples.setTask(ta); + + if (data.getSamples() != null) { + threadSamples.setCount(data.count); + threadSamples.setSamples(data.getSamples().entrySet().stream().collect( + Collectors.toMap( + e -> StackTraceUtil.build(e.getKey(), context.getSymbols()), + Map.Entry::getValue, + Long::sum + ) + )); + } + + nativeSamples.add(threadSamples); + } + + nativeSamples.sort((o1, o2) -> { + long delta = o2.getCount() - o1.getCount(); + return delta > 0 ? 1 : (delta == 0 ? 0 : -1); + }); + + return nativeSamples; + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult nativeResult = new DimensionResult<>(); + nativeResult.setList(buildTaskExecutionSamples()); + result.setNativeExecutionSamples(nativeResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketReadSizeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketReadSizeExtractor.java new file mode 100644 index 0000000000..9a939d9644 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketReadSizeExtractor.java @@ -0,0 +1,43 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class SocketReadSizeExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.SOCKET_READ); + } + }); + + public SocketReadSizeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitSocketRead(RecordedEvent event) { + visitEvent(event); + } + + private void visitEvent(RecordedEvent event) { + long eventValue = event.getLong("bytesRead"); + visitEvent(event, eventValue); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setSocketReadSize(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketReadTimeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketReadTimeExtractor.java new file mode 100644 index 0000000000..031f03c670 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketReadTimeExtractor.java @@ -0,0 +1,43 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class SocketReadTimeExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.SOCKET_READ); + } + }); + + public SocketReadTimeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitSocketRead(RecordedEvent event) { + visitEvent(event); + } + + private void visitEvent(RecordedEvent event) { + long eventValue = event.getDurationNano(); + visitEvent(event, eventValue); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setSocketReadTime(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketWriteSizeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketWriteSizeExtractor.java new file mode 100644 index 0000000000..ba1971c838 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketWriteSizeExtractor.java @@ -0,0 +1,42 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class SocketWriteSizeExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.SOCKET_WRITE); + } + }); + + public SocketWriteSizeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitSocketWrite(RecordedEvent event) { + visitEvent(event); + } + + private void visitEvent(RecordedEvent event) { + long eventValue = event.getLong("bytesWritten"); + visitEvent(event, eventValue); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setSocketWriteSize(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketWriteTimeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketWriteTimeExtractor.java new file mode 100644 index 0000000000..340cda0471 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SocketWriteTimeExtractor.java @@ -0,0 +1,42 @@ + +package org.example.jfranalyzerbackend.extractor; + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class SocketWriteTimeExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.SOCKET_WRITE); + } + }); + + public SocketWriteTimeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitSocketWrite(RecordedEvent event) { + visitEvent(event); + } + + private void visitEvent(RecordedEvent event) { + long eventValue = event.getDurationNano(); + visitEvent(event, eventValue); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setSocketWriteTime(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SumExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SumExtractor.java new file mode 100644 index 0000000000..0bcbdca8ea --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SumExtractor.java @@ -0,0 +1,87 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.model.Task; +import org.example.jfranalyzerbackend.model.TaskData; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.model.jfr.RecordedThread; +import org.example.jfranalyzerbackend.util.StackTraceUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public abstract class SumExtractor extends Extractor { + SumExtractor(JFRAnalysisContext context, List interested) { + super(context, interested); + } + + public static class TaskSumData extends TaskData { + TaskSumData(RecordedThread thread) { + super(thread); + } + + long sum; + } + + protected final Map data = new HashMap<>(); + + TaskSumData getTaskSumData(RecordedThread thread) { + return data.computeIfAbsent(thread.getJavaThreadId(), i -> new TaskSumData(thread)); + } + + protected void visitEvent(RecordedEvent event, long eventValue) { + RecordedStackTrace stackTrace = event.getStackTrace(); + if (stackTrace == null) { + return; + } + + TaskSumData data = getTaskSumData(event.getThread()); + if (data.getSamples() == null) { + data.setSamples(new HashMap<>()); + } + + data.getSamples().compute(stackTrace, (k, tmp) -> tmp == null ? eventValue : tmp + eventValue); + data.sum += eventValue; + } + + public List buildTaskSums() { + List sums = new ArrayList<>(); + for (TaskSumData data : this.data.values()) { + if (data.sum == 0) { + continue; + } + + TaskSum ts = new TaskSum(); + Task ta = new Task(); + ta.setId(data.getThread().getJavaThreadId()); + ta.setName(context.getThread(data.getThread()).getName()); + ts.setTask(ta); + + if (data.getSamples() != null) { + ts.setSum(data.sum); + ts.setSamples(data.getSamples().entrySet().stream().collect( + Collectors.toMap( + e -> StackTraceUtil.build(e.getKey(), context.getSymbols()), + Map.Entry::getValue, + Long::sum) + )); + } + + sums.add(ts); + } + + sums.sort((o1, o2) -> { + long delta = o2.getSum() - o1.getSum(); + return delta > 0 ? 1 : (delta == 0 ? 0 : -1); + }); + + return sums; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SynchronizationExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SynchronizationExtractor.java new file mode 100644 index 0000000000..306e498e6c --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/SynchronizationExtractor.java @@ -0,0 +1,43 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class SynchronizationExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.JAVA_MONITOR_ENTER); + } + }); + + public SynchronizationExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitMonitorEnter(RecordedEvent event) { + visitEvent(event, event.getDurationNano()); + } + + @Override + void visitThreadPark(RecordedEvent event) { + visitEvent(event, event.getDurationNano()); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setSynchronization(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ThreadParkExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ThreadParkExtractor.java new file mode 100644 index 0000000000..ad4da3ba92 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ThreadParkExtractor.java @@ -0,0 +1,43 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ThreadParkExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.THREAD_PARK); + } + }); + + public ThreadParkExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitThreadPark(RecordedEvent event) { + visitEvent(event); + } + + private void visitEvent(RecordedEvent event) { + long eventValue = event.getDurationNano(); + visitEvent(event, eventValue); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setThreadPark(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ThreadSleepTimeExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ThreadSleepTimeExtractor.java new file mode 100644 index 0000000000..75ea3c07cf --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/ThreadSleepTimeExtractor.java @@ -0,0 +1,43 @@ + +package org.example.jfranalyzerbackend.extractor; + + + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ThreadSleepTimeExtractor extends SumExtractor { + protected static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.THREAD_SLEEP); + } + }); + + public ThreadSleepTimeExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + } + + @Override + void visitThreadSleep(RecordedEvent event) { + visitEvent(event); + } + + private void visitEvent(RecordedEvent event) { + long eventValue = event.getLong("time") * 1000 * 1000; + visitEvent(event, eventValue); + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult tsResult = new DimensionResult<>(); + tsResult.setList(buildTaskSums()); + result.setThreadSleepTime(tsResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/WallClockExtractor.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/WallClockExtractor.java new file mode 100644 index 0000000000..63cb757eea --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/extractor/WallClockExtractor.java @@ -0,0 +1,159 @@ + +package org.example.jfranalyzerbackend.extractor; + +import lombok.extern.slf4j.Slf4j; +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.AnalysisResult; +import org.example.jfranalyzerbackend.model.DimensionResult; +import org.example.jfranalyzerbackend.model.TaskData; +import org.example.jfranalyzerbackend.model.TaskSum; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.model.jfr.RecordedThread; +import org.example.jfranalyzerbackend.util.StackTraceUtil; + + +import java.util.*; +import java.util.stream.Collectors; + +@Slf4j +public class WallClockExtractor extends Extractor { + private static final int ASYNC_PROFILER_DEFAULT_INTERVAL = 50 * 1000 * 1000; + + private static final List INTERESTED = Collections.unmodifiableList(new ArrayList<>() { + { + add(EventConstant.ACTIVE_SETTING); + add(EventConstant.WALL_CLOCK_SAMPLE); + } + }); + + static class TaskWallClockData extends TaskData { + private long begin = 0; + private long end = 0; + private long sampleCount = 0; + + TaskWallClockData(RecordedThread thread) { + super(thread); + } + + void updateTime(long time) { + if (begin == 0 || time < begin) { + begin = time; + } + if (end == 0 || time > end) { + end = time; + } + } + + long getDuration() { + return end - begin; + } + } + + private final Map data = new HashMap<>(); + private long methodSampleEventId = -1; + private long interval; // nano + + private boolean isWallClockEvents = false; + + public WallClockExtractor(JFRAnalysisContext context) { + super(context, INTERESTED); + + Long id = context.getEventTypeId(EventConstant.WALL_CLOCK_SAMPLE); + if (id != null) { + methodSampleEventId = context.getEventTypeId(EventConstant.WALL_CLOCK_SAMPLE); + } + } + + TaskWallClockData getThreadData(RecordedThread thread) { + return data.computeIfAbsent(thread.getJavaThreadId(), i -> new TaskWallClockData(thread)); + } + + @Override + void visitActiveSetting(RecordedEvent event) { + if (EventConstant.EVENT.equals(event.getString("name")) && EventConstant.WALL.equals(event.getString("value"))) { + this.isWallClockEvents = true; + } + + if (event.getActiveSetting().eventId() == methodSampleEventId) { + if (EventConstant.WALL.equals(event.getString("name"))) { + this.isWallClockEvents = true; + this.interval = Long.parseLong(event.getString("value")) * 1000 * 1000; + } + if (EventConstant.INTERVAL.equals(event.getString("name"))) { + this.interval = Long.parseLong(event.getString("value")) * 1000 * 1000; + } + } + } + + @Override + void visitExecutionSample(RecordedEvent event) { + RecordedStackTrace stackTrace = event.getStackTrace(); + if (stackTrace == null) { + return; + } + + RecordedThread thread = event.getThread("eventThread"); + if (thread == null) { + thread = event.getThread("sampledThread"); + } + if (thread == null) { + return; + } + TaskWallClockData taskWallClockData = getThreadData(thread); + + if (taskWallClockData.getSamples() == null) { + taskWallClockData.setSamples(new HashMap<>()); + } + taskWallClockData.updateTime(event.getStartTimeNanos()); + taskWallClockData.getSamples().compute(stackTrace, (k, count) -> count == null ? 1 : count + 1); + taskWallClockData.sampleCount++; + } + + private List buildThreadWallClock() { + List taskSumList = new ArrayList<>(); + if (!isWallClockEvents) { + return taskSumList; + } + + if (this.interval <= 0) { + this.interval = ASYNC_PROFILER_DEFAULT_INTERVAL; + log.warn("use default interval: " + ASYNC_PROFILER_DEFAULT_INTERVAL / 1000 / 1000 + " ms"); + } + Map map = new HashMap<>(); + for (TaskWallClockData data : this.data.values()) { + if (data.getSamples() == null) { + continue; + } + TaskSum taskSum = new TaskSum(); + taskSum.setTask(context.getThread(data.getThread())); + taskSum.setSum(data.sampleCount > 1 ? data.getDuration() : this.interval); + data.getSamples().replaceAll((k, v) -> v * (taskSum.getSum() / data.sampleCount)); + taskSum.setSamples(data.getSamples().entrySet().stream().collect( + Collectors.toMap( + e -> StackTraceUtil.build(e.getKey(), context.getSymbols()), + Map.Entry::getValue, + Long::sum) + )); + map.put(data.getThread().getJavaThreadId(), taskSum); + } + + map.forEach((k, v) -> { + taskSumList.add(v); + }); + + taskSumList.sort((o1, o2) -> { + long delta = o2.getSum() - o1.getSum(); + return delta > 0 ? 1 : (delta == 0 ? 0 : -1); + }); + + return taskSumList; + } + + @Override + public void fillResult(AnalysisResult result) { + DimensionResult wallClockResult = new DimensionResult<>(); + wallClockResult.setList(buildThreadWallClock()); + result.setWallClock(wallClockResult); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/AnalysisResult.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/AnalysisResult.java new file mode 100644 index 0000000000..206f15e801 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/AnalysisResult.java @@ -0,0 +1,52 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + + +import java.util.List; + +@Setter +@Getter +public class AnalysisResult { + private long processingTimeMillis; + + private DimensionResult cpuTime; + + private DimensionResult cpuSample; + + private DimensionResult wallClock; + + private DimensionResult allocations; + + private DimensionResult allocatedMemory; + + private DimensionResult nativeExecutionSamples; + + private DimensionResult fileIOTime; + + private DimensionResult fileReadSize; + + private DimensionResult fileWriteSize; + + private DimensionResult socketReadSize; + + private DimensionResult socketReadTime; + + private DimensionResult socketWriteSize; + + private DimensionResult socketWriteTime; + + private DimensionResult synchronization; + + private DimensionResult threadPark; + + private DimensionResult classLoadCount; + + private DimensionResult classLoadWallTime; + + private DimensionResult threadSleepTime; + + private List problems; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Desc.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Desc.java new file mode 100644 index 0000000000..3bfe10843d --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Desc.java @@ -0,0 +1,20 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; + +@Getter +public class Desc { + private final String key; + + public Desc(String key) { + this.key = key; + } + + public static Desc of(String code) { + if (code == null) { + return null; + } + return new Desc(code); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/DimensionResult.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/DimensionResult.java new file mode 100644 index 0000000000..8a19ac6762 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/DimensionResult.java @@ -0,0 +1,22 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; + +@Setter +@Getter +public class DimensionResult { + + private List list; + + public void add(T t) { + if (list == null) { + list = new ArrayList<>(); + } + list.add(t); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Filter.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Filter.java new file mode 100644 index 0000000000..4133c32e91 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Filter.java @@ -0,0 +1,20 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; + +@Getter +public class Filter { + private final String key; + + private final Desc desc; + + public Filter(String key, Desc desc) { + this.key = key; + this.desc = desc; + } + + public static Filter of(String key, String desc) { + return new Filter(key, Desc.of(desc)); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Frame.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Frame.java new file mode 100644 index 0000000000..6808068fef --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Frame.java @@ -0,0 +1,48 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; + + +import java.util.Objects; + +public class Frame extends SymbolBase { + + @Setter + @Getter + private Method method; + + @Setter + @Getter + private int line; + + private String string; + + public String toString() { + if (this.string != null) { + return string; + } + + if (this.line == 0) { + this.string = method.toString(); + } else { + this.string = String.format("%s:%d", method, line); + } + + return this.string; + } + + public int genHashCode() { + return Objects.hash(method, line); + } + + public boolean isEquals(Object b) { + if (!(b instanceof Frame f2)) { + return false; + } + + return line == f2.getLine() && method.equals(f2.getMethod()); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaFrame.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaFrame.java new file mode 100644 index 0000000000..fcbad6ad79 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaFrame.java @@ -0,0 +1,47 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +public class JavaFrame extends Frame { + public enum Type { + INTERPRETER("Interpreted"), + JIT("JIT compiled"), + INLINE("Inlined"), + NATIVE("Native"); + + final String value; + + Type(String value) { + this.value = value; + } + + public static Type typeOf(String value) { + for (Type type : Type.values()) { + if (type.value.equals(value)) { + return type; + } + } + throw new IllegalArgumentException(value); + } + } + + private boolean isJavaFrame; + + @Setter + @Getter + private Type type; + + @Setter + @Getter + private long bci = -1; + + public boolean isJavaFrame() { + return isJavaFrame; + } + + public void setJavaFrame(boolean javaFrame) { + isJavaFrame = javaFrame; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaMethod.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaMethod.java new file mode 100644 index 0000000000..087a6dfa02 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaMethod.java @@ -0,0 +1,36 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Objects; + +@Setter +@Getter +public class JavaMethod extends Method { + private int modifiers; + private boolean hidden; + + public int genHashCode() { + return Objects.hash(modifiers, hidden, getPackageName(), getType(), getName(), getDescriptor()); + } + + public boolean equals(Object b) { + if (this == b) { + return true; + } + + if (b == null) { + return false; + } + + if (!(b instanceof JavaMethod)) { + return false; + } + + JavaMethod m2 = (JavaMethod) b; + + return modifiers == m2.modifiers && hidden == m2.hidden && super.equals(m2); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaThread.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaThread.java new file mode 100644 index 0000000000..1d9bdfdf2a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaThread.java @@ -0,0 +1,12 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class JavaThread extends Task { + private long javaId; + private long osId; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaThreadCPUTime.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaThreadCPUTime.java new file mode 100644 index 0000000000..f6cddf2a88 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/JavaThreadCPUTime.java @@ -0,0 +1,5 @@ + +package org.example.jfranalyzerbackend.model; + +public class JavaThreadCPUTime extends TaskCPUTime { +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/LeafPerfDimension.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/LeafPerfDimension.java new file mode 100644 index 0000000000..e0fb4819b5 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/LeafPerfDimension.java @@ -0,0 +1,31 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import org.example.jfranalyzerbackend.enums.Unit; + +@Getter +public class LeafPerfDimension { + private final String key; + + private final Desc desc; + + private final Filter[] filters; + + private final Unit unit; + + public LeafPerfDimension(String key, Desc desc, Filter[] filters, Unit unit) { + this.key = key; + this.desc = desc; + this.filters = filters; + this.unit = unit; + } + + public LeafPerfDimension(String key, Desc desc, Filter[] filters) { + this(key, desc, filters, null); + } + + public static LeafPerfDimension of(String key, String desc, Filter[] filters) { + return new LeafPerfDimension(key, Desc.of(desc), filters); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Method.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Method.java new file mode 100644 index 0000000000..8ca9b97b8f --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Method.java @@ -0,0 +1,67 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; + + +import java.util.Objects; + +@Setter +@Getter +public class Method extends SymbolBase { + private String packageName; + + private String type; + + private String name; + + private String descriptor; + + private String string; + + public int genHashCode() { + return Objects.hash(packageName, type, name, descriptor); + } + + public boolean isEquals(Object b) { + if (!(b instanceof Method m2)) { + return false; + } + + return Objects.equals(packageName, m2.getPackageName()) + && Objects.equals(type, m2.getType()) + && Objects.equals(name, m2.getName()) + && Objects.equals(descriptor, m2.getDescriptor()); + } + + public String toString(boolean includeDescriptor) { + if (string != null) { + return string; + } + + String str; + if (this.descriptor != null && !this.descriptor.isEmpty() && includeDescriptor) { + str = String.format("%s%s", this.name, this.descriptor); + } else { + str = this.name; + } + + if (this.type != null && !this.type.isEmpty()) { + str = String.format("%s.%s", this.type, str); + } + + if (this.packageName != null && !this.packageName.isEmpty()) { + str = String.format("%s.%s", this.packageName, str); + } + + this.string = str; + + return str; + } + + public String toString() { + return toString(true); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/PerfDimension.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/PerfDimension.java new file mode 100644 index 0000000000..bfb95d56a2 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/PerfDimension.java @@ -0,0 +1,37 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import org.example.jfranalyzerbackend.enums.Unit; + + +@Getter +public class PerfDimension extends LeafPerfDimension { + private final LeafPerfDimension[] subDimensions; + + public PerfDimension(String key, Desc desc, Filter[] filters) { + this(key, desc, filters, Unit.COUNT); + } + + public PerfDimension(String key, Desc desc, Filter[] filters, Unit unit) { + super(key, desc, filters, unit); + this.subDimensions = null; + } + + public PerfDimension(String key, Desc desc, LeafPerfDimension[] subDimensions) { + super(key, desc, null, null); + this.subDimensions = subDimensions; + } + + public static PerfDimension of(String key, String desc, Filter[] filters) { + return new PerfDimension(key, Desc.of(desc), filters); + } + + public static PerfDimension of(String key, String desc, Filter[] filters, Unit unit) { + return new PerfDimension(key, Desc.of(desc), filters, unit); + } + + public static PerfDimension of(String key, String desc, LeafPerfDimension[] subDimensions) { + return new PerfDimension(key, Desc.of(desc), subDimensions); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Problem.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Problem.java new file mode 100644 index 0000000000..5b0cf0b2e4 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Problem.java @@ -0,0 +1,19 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class Problem { + + private String summary; + + private String solution; + + public Problem(String summary, String solution) { + this.summary = summary; + this.solution = solution; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/StackTrace.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/StackTrace.java new file mode 100644 index 0000000000..45ca02f0a0 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/StackTrace.java @@ -0,0 +1,31 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; + + +import java.util.Arrays; +import java.util.Objects; + +@Setter +@Getter +public class StackTrace extends SymbolBase { + + private Frame[] frames; + + private boolean truncated; + + public int genHashCode() { + return Objects.hash(truncated, Arrays.hashCode(frames)); + } + + public boolean isEquals(Object b) { + if (!(b instanceof StackTrace t2)) { + return false; + } + + return truncated == t2.truncated && Arrays.equals(frames, t2.frames); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Task.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Task.java new file mode 100644 index 0000000000..37d1a49b0d --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/Task.java @@ -0,0 +1,20 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class Task { + + private long id; + + private String name; + + // unit: ms, -1 means unknown + private long start = -1; + + // unit: ms, -1 means unknown + private long end = -1; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskAllocatedMemory.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskAllocatedMemory.java new file mode 100644 index 0000000000..44daa66be7 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskAllocatedMemory.java @@ -0,0 +1,14 @@ +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class TaskAllocatedMemory extends TaskSum { + public TaskAllocatedMemory() { + super(null); + } + + private long allocatedMemory; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskAllocations.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskAllocations.java new file mode 100644 index 0000000000..b628a8258e --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskAllocations.java @@ -0,0 +1,11 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class TaskAllocations extends TaskCount { + private long allocations; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskCPUTime.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskCPUTime.java new file mode 100644 index 0000000000..2aa6de298b --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskCPUTime.java @@ -0,0 +1,25 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class TaskCPUTime extends TaskResultBase { + + private long user; + + private long system; + + public TaskCPUTime() { + } + + public long totalCPUTime() { + return user + system; + } + + public TaskCPUTime(Task task) { + super(task); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskCount.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskCount.java new file mode 100644 index 0000000000..556208b98a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskCount.java @@ -0,0 +1,18 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class TaskCount extends TaskResultBase { + private long count; + + public TaskCount() { + } + + public TaskCount(Task task) { + super(task); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskData.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskData.java new file mode 100644 index 0000000000..801ae67f8a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskData.java @@ -0,0 +1,22 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.model.jfr.RecordedThread; + + +import java.util.Map; + +@Setter +@Getter +public class TaskData { + public TaskData(RecordedThread thread) { + this.thread = thread; + } + + private RecordedThread thread; + + private Map samples; +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskResultBase.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskResultBase.java new file mode 100644 index 0000000000..3c679694ec --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskResultBase.java @@ -0,0 +1,33 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +@Setter +@Getter +public class TaskResultBase { + private Task task; + private Map samples; + + public TaskResultBase(Task task) { + this.task = task; + samples = new HashMap<>(); + } + + public TaskResultBase() { + } + + public void merge(StackTrace st, long value) { + if (samples == null) { + samples = new HashMap<>(); + } + if (st == null || value <= 0) { + return; + } + samples.put(st, samples.containsKey(st) ? samples.get(st) + value : value); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskSum.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskSum.java new file mode 100644 index 0000000000..42a9f328df --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/TaskSum.java @@ -0,0 +1,19 @@ + +package org.example.jfranalyzerbackend.model; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class TaskSum extends TaskResultBase { + public TaskSum() { + super(null); + } + + public TaskSum(Task task) { + super(task); + } + + private long sum; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/EventType.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/EventType.java new file mode 100644 index 0000000000..9409183fee --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/EventType.java @@ -0,0 +1,5 @@ + +package org.example.jfranalyzerbackend.model.jfr; + +public record EventType(String name) { +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedClass.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedClass.java new file mode 100644 index 0000000000..a3a41bf2ac --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedClass.java @@ -0,0 +1,40 @@ + +package org.example.jfranalyzerbackend.model.jfr; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; + + +import java.util.Objects; + +public class RecordedClass extends SymbolBase { + @Setter + @Getter + private String packageName; + @Setter + @Getter + private String name; + private String fullName; + + public String getFullName() { + if (fullName == null) { + fullName = packageName + "." + name; + } + return fullName; + } + + public boolean isEquals(Object b) { + if (!(b instanceof RecordedClass)) { + return false; + } + + RecordedClass c2 = (RecordedClass) b; + + return Objects.equals(packageName, c2.getPackageName()) && Objects.equals(name, c2.getName()); + } + + public int genHashCode() { + return Objects.hash(packageName, name); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedEvent.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedEvent.java new file mode 100644 index 0000000000..089d92201c --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedEvent.java @@ -0,0 +1,322 @@ +package org.example.jfranalyzerbackend.model.jfr; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import org.example.jfranalyzerbackend.enums.EventConstant; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; +import org.example.jfranalyzerbackend.model.symbol.SymbolTable; +import org.openjdk.jmc.common.*; +import org.openjdk.jmc.common.item.*; +import org.openjdk.jmc.common.unit.IQuantity; +import org.openjdk.jmc.common.unit.IScalarAffineTransform; +import org.openjdk.jmc.common.unit.IUnit; +import org.openjdk.jmc.common.unit.UnitLookup; +import org.openjdk.jmc.common.util.FormatToolkit; +import org.openjdk.jmc.common.util.LabeledIdentifier; + +import java.lang.reflect.Modifier; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import static org.example.jfranalyzerbackend.enums.EventConstant.ACTIVE_SETTING; + + +@Slf4j +public class RecordedEvent { + private static final long NANOS_PER_SECOND = 1000_000_000L; + + private final IItem item; + + private long startTime; + private long endTime = -1; + @Getter + private RecordedStackTrace stackTrace; + @Getter + private RecordedThread thread; + @Getter + private EventType eventType; + @Getter + private ActiveSetting activeSetting = null; + + public static RecordedEvent newInstance(IItem item, SymbolTable symbols) { + RecordedEvent event = new RecordedEvent(item); + event.init(symbols); + return event; + } + + private RecordedEvent(IItem item) { + this.item = item; + } + + private void init(SymbolTable symbols) { + IMCThread imcThread = getValue("eventThread"); + if (imcThread == null) { + imcThread = getValue("sampledThread"); + } + + if (imcThread != null) { + thread = new RecordedThread(imcThread); + } + + Object value = getValue("startTime"); + if (value instanceof IQuantity) { + IQuantity v = (IQuantity) value; + startTime = toNanos(v, UnitLookup.EPOCH_NS); + } + + IType itemType = ItemToolkit.getItemType(item); + String itemTypeId = itemType.getIdentifier(); + + // fix for JDK Mission Control lib + if ((itemTypeId.startsWith(EventConstant.EXECUTION_SAMPLE) && !itemTypeId.equals(EventConstant.EXECUTION_SAMPLE))) { + itemTypeId = EventConstant.EXECUTION_SAMPLE; + } else if (itemTypeId.startsWith(EventConstant.OBJECT_ALLOCATION_OUTSIDE_TLAB) + && !itemTypeId.equals(EventConstant.OBJECT_ALLOCATION_OUTSIDE_TLAB)) { + itemTypeId = EventConstant.OBJECT_ALLOCATION_OUTSIDE_TLAB; + } else if (itemTypeId.startsWith(EventConstant.OBJECT_ALLOCATION_IN_NEW_TLAB) + && !itemTypeId.equals(EventConstant.OBJECT_ALLOCATION_IN_NEW_TLAB)) { + itemTypeId = EventConstant.OBJECT_ALLOCATION_IN_NEW_TLAB; + } + + this.eventType = new EventType(itemTypeId); + + IMCStackTrace s = getValue("stackTrace"); + if (s != null) { + List frames = s.getFrames(); + RecordedStackTrace st = new RecordedStackTrace(); + List list = new ArrayList<>(); + frames.forEach(frame -> { + IMCMethod method = frame.getMethod(); + + RecordedMethod m = new RecordedMethod(); + m.setDescriptor(method.getFormalDescriptor()); + m.setModifiers(method.getModifier() == null ? 0 : method.getModifier()); + + IMCType type = method.getType(); + RecordedClass c = new RecordedClass(); + c.setName(type.getTypeName()); + c.setPackageName(type.getPackage().getName()); + if (symbols.isContains(c)) { + c = (RecordedClass) symbols.get(c); + } else { + symbols.put(c); + } + m.setType(c); + m.setName(method.getMethodName()); + if (symbols.isContains(m)) { + m = (RecordedMethod) symbols.get(m); + } else { + symbols.put(m); + } + + RecordedFrame f = new RecordedFrame(); + f.setMethod(m); + f.setBytecodeIndex(frame.getBCI()); + f.setType(frame.getType().getName()); + + if (symbols.isContains(f)) { + f = (RecordedFrame) symbols.get(f); + } else { + symbols.put(f); + } + + list.add(f); + }); + st.setFrames(list); + if (symbols.isContains(st)) { + st = (RecordedStackTrace) symbols.get(st); + } else { + symbols.put(st); + } + stackTrace = st; + } + + if (ACTIVE_SETTING.equals(itemType.getIdentifier())) { + String eventName = null; + long eventId = -1; + String settingName = null; + for (Map.Entry, ? extends IDescribable> entry : itemType.getAccessorKeys().entrySet()) { + if (entry.getKey().getIdentifier().equals("settingFor")) { + IMemberAccessor accessor = itemType.getAccessor(entry.getKey()); + LabeledIdentifier id = (LabeledIdentifier) accessor.getMember(item); + eventName = id.getInterfaceId(); + eventId = id.getImplementationId(); + continue; + } + if (entry.getKey().getIdentifier().equals("name")) { + IMemberAccessor accessor = itemType.getAccessor(entry.getKey()); + settingName = (String) accessor.getMember(item); + } + if (eventName != null && settingName != null && eventId >= 0) { + break; + } + } + if (eventName != null && settingName != null && eventId >= 0) { + this.activeSetting = new ActiveSetting(eventName, eventId, settingName); + } + } + } + + @SuppressWarnings("unchecked") + public final T getValue(String name) { + IType itemType = ItemToolkit.getItemType(item); + for (Map.Entry, ? extends IDescribable> entry : itemType.getAccessorKeys().entrySet()) { + IMemberAccessor accessor = itemType.getAccessor(entry.getKey()); + if (entry.getKey().getIdentifier().equals(name)) { + return (T) accessor.getMember(item); + } + } + return null; + } + + public Duration getDuration() { + return Duration.ofNanos(getDurationNano()); + } + + public long getDurationNano() { + return getEndTimeNanos() - startTime; + } + + public String getString(String name) { + return getValue(name); + } + + public int getInt(String name) { + Number n = getValue(name); + if (n != null) { + return n.intValue(); + } else { + return 0; + } + } + + public float getFloat(String name) { + Number n = getValue(name); + if (n != null) { + return n.floatValue(); + } else { + return 0; + } + } + + public long getLong(String name) { + Number n = getValue(name); + if (n != null) { + return n.longValue(); + } else { + return 0; + } + } + + public RecordedThread getThread(String key) { + IMCThread imcThread = getValue(key); + return imcThread == null ? null : new RecordedThread(imcThread); + } + + public Instant getStartTime() { + return Instant.ofEpochSecond(startTime / NANOS_PER_SECOND, startTime % NANOS_PER_SECOND); + } + + public Instant getEndTime() { + long endTime = getEndTimeNanos(); + return Instant.ofEpochSecond(endTime / NANOS_PER_SECOND, endTime % NANOS_PER_SECOND); + } + + public long getStartTimeNanos() { + return startTime; + } + + private long getEndTimeNanos() { + if (endTime < 0) { + Object value = getValue("duration"); + if (value instanceof IQuantity) { + endTime = startTime + toNanos((IQuantity) value, UnitLookup.NANOSECOND); + } else { + throw new RuntimeException("should not reach here"); + } + } + + return endTime; + } + + private static long toNanos(IQuantity value, IUnit targetUnit) { + IScalarAffineTransform t = value.getUnit().valueTransformTo(targetUnit); + return t.targetValue(value.longValue()); + } + + private static String stringify(String indent, Object value) { + if (value instanceof IMCMethod) { + return indent + stringifyMethod((IMCMethod) value); + } + if (value instanceof IMCType) { + return indent + stringifyType((IMCType) value); + } + if (value instanceof IQuantity) { + return ((IQuantity) value).persistableString(); + } + + if (value instanceof IDescribable) { + String name = ((IDescribable) value).getName(); + return (name != null) ? name : value.toString(); + } + if (value == null) { + return "null"; + } + if (value.getClass().isArray()) { + StringBuilder buffer = new StringBuilder(); + Object[] values = (Object[]) value; + buffer.append(" [" + values.length + "]"); + for (Object o : values) { + buffer.append(indent); + buffer.append(stringify(indent + " ", o)); + } + return buffer.toString(); + } + return value.toString(); + } + + private static String stringifyType(IMCType type) { + return type.getPackage() == null ? + type.getTypeName() : formatPackage(type.getPackage()) + "." + type.getTypeName(); + } + + private static String stringifyMethod(IMCMethod method) { + StringBuilder buffer = new StringBuilder(); + Integer modifier = method.getModifier(); + buffer.append(formatPackage(method.getType().getPackage())); + buffer.append("."); + buffer.append(method.getType().getTypeName()); + buffer.append("#"); + buffer.append(method.getMethodName()); + buffer.append(method.getFormalDescriptor()); + buffer.append("\""); + if (modifier != null) { + buffer.append(" modifier=\""); + buffer.append(Modifier.toString(method.getModifier())); + buffer.append("\""); + } + return buffer.toString(); + } + + private static String formatPackage(IMCPackage mcPackage) { + return FormatToolkit.getPackage(mcPackage); + } + + public record ActiveSetting(String eventType, Long eventId, String settingName) { + @Override + public boolean equals(Object b) { + if (!(b instanceof ActiveSetting other)) { + return false; + } + + return Objects.equals(eventType, other.eventType()) + && Objects.equals(eventId, other.eventId()) + && Objects.equals(settingName, other.settingName()); + } + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedFrame.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedFrame.java new file mode 100644 index 0000000000..b1da64a264 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedFrame.java @@ -0,0 +1,47 @@ +package org.example.jfranalyzerbackend.model.jfr; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; + + +import java.util.Objects; + +@Setter +@Getter +public class RecordedFrame extends SymbolBase { + private boolean javaFrame; + private String type; + private int bytecodeIndex; + private RecordedMethod method; + private int lineNumber; + + public RecordedFrame(boolean javaFrame, String type, int bytecodeIndex, int lineNumber, RecordedMethod method) { + this.javaFrame = javaFrame; + this.type = type; + this.bytecodeIndex = bytecodeIndex; + this.lineNumber = lineNumber; + this.method = method; + } + + public RecordedFrame() { + } + + public boolean isEquals(Object b) { + if (!(b instanceof RecordedFrame)) { + return false; + } + + RecordedFrame f2 = (RecordedFrame) b; + + return bytecodeIndex == f2.getBytecodeIndex() + && lineNumber == f2.getLineNumber() + && javaFrame == f2.isJavaFrame() + && this.method.equals(f2.method) + && Objects.equals(type, f2.getType()); + } + + public int genHashCode() { + return Objects.hash(javaFrame, type, bytecodeIndex, method, lineNumber); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedMethod.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedMethod.java new file mode 100644 index 0000000000..4fc059845f --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedMethod.java @@ -0,0 +1,37 @@ + +package org.example.jfranalyzerbackend.model.jfr; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; + + +import java.util.Objects; + +@Setter +@Getter +public class RecordedMethod extends SymbolBase { + private RecordedClass type; + private String name; + private String descriptor; + private int modifiers; + private boolean hidden; + + public boolean isEquals(Object b) { + if (!(b instanceof RecordedMethod)) { + return false; + } + + RecordedMethod m2 = (RecordedMethod) b; + + return Objects.equals(descriptor, m2.getDescriptor()) + && Objects.equals(name, m2.getName()) + && modifiers == m2.getModifiers() + && type.equals(m2.getType()) + && hidden == m2.isHidden(); + } + + public int genHashCode() { + return Objects.hash(type, name, descriptor, modifiers, hidden); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedStackTrace.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedStackTrace.java new file mode 100644 index 0000000000..24315a3abe --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedStackTrace.java @@ -0,0 +1,43 @@ + +package org.example.jfranalyzerbackend.model.jfr; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; + + +import java.util.List; +import java.util.Objects; + +@Setter +@Getter +public class RecordedStackTrace extends SymbolBase { + private boolean truncated; + private List frames; + + public boolean isEquals(Object b) { + if (!(b instanceof RecordedStackTrace)) { + return false; + } + + RecordedStackTrace t2 = (RecordedStackTrace) b; + + if (truncated != t2.isTruncated()) { + return false; + } + + if (frames == null) { + return t2.getFrames() == null; + } + + if (frames.size() != t2.getFrames().size()) { + return false; + } + + return frames.equals(t2.getFrames()); + } + + public int genHashCode() { + return Objects.hash(truncated, frames); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedThread.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedThread.java new file mode 100644 index 0000000000..b442085758 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/jfr/RecordedThread.java @@ -0,0 +1,49 @@ + +package org.example.jfranalyzerbackend.model.jfr; + +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.openjdk.jmc.common.IMCThread; +import org.openjdk.jmc.common.unit.IQuantity; + +import java.lang.reflect.Field; + +@Slf4j +public class RecordedThread { + @Setter + @Getter + private long javaThreadId; + @Getter + private String javaName; + @Setter + private long osThreadId; + + public RecordedThread(String javaName, long javaThreadId, long osThreadId) { + this.javaName = javaName; + this.javaThreadId = javaThreadId; + this.osThreadId = osThreadId; + } + + public RecordedThread(IMCThread imcThread) { + this.javaThreadId = imcThread.getThreadId(); + this.javaName = imcThread.getThreadName(); + try { + Field f = imcThread.getClass().getDeclaredField("osThreadId"); + f.setAccessible(true); + Object value = f.get(imcThread); + if (value instanceof IQuantity) { + this.osThreadId = ((IQuantity) value).longValue(); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } + if (this.javaThreadId == 0 && this.osThreadId > 0) { + this.javaThreadId = -this.osThreadId; + } + } + + public long getOSThreadId() { + return osThreadId; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/symbol/SymbolBase.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/symbol/SymbolBase.java new file mode 100644 index 0000000000..70d78404be --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/symbol/SymbolBase.java @@ -0,0 +1,33 @@ +package org.example.jfranalyzerbackend.model.symbol; + +public abstract class SymbolBase { + private Integer hashCode = null; + + public abstract int genHashCode(); + + public abstract boolean isEquals(Object b); + + public boolean equals(Object b) { + if (this == b) { + return true; + } + + if (b == null) { + return false; + } + + if (!(b instanceof SymbolBase)) { + return false; + } + + return isEquals(b); + } + + public int hashCode() { + if (hashCode == null) { + hashCode = genHashCode(); + } + + return hashCode; + } +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/symbol/SymbolTable.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/symbol/SymbolTable.java new file mode 100644 index 0000000000..071cb2045d --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/model/symbol/SymbolTable.java @@ -0,0 +1,24 @@ +package org.example.jfranalyzerbackend.model.symbol; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class SymbolTable { + private final Map table = new ConcurrentHashMap<>(); + + public boolean isContains(T s) { + return table.containsKey(s); + } + + public T get(T s) { + return table.get(s); + } + + public T put(T s) { + return table.put(s, s); + } + + public void clear() { + this.table.clear(); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/repository/DeletedFileRepo.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/repository/DeletedFileRepo.java new file mode 100644 index 0000000000..e13ce5e9b1 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/repository/DeletedFileRepo.java @@ -0,0 +1,9 @@ +package org.example.jfranalyzerbackend.repository; + +import org.example.jfranalyzerbackend.entity.shared.file.DeletedFileEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface DeletedFileRepo extends JpaRepository { +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/repository/FileRepo.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/repository/FileRepo.java new file mode 100644 index 0000000000..a88746215a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/repository/FileRepo.java @@ -0,0 +1,16 @@ +package org.example.jfranalyzerbackend.repository; + +import org.example.jfranalyzerbackend.entity.shared.file.FileEntity; +import org.example.jfranalyzerbackend.enums.FileType; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface FileRepo extends JpaRepository { + + Page findByUserIdOrderByCreatedTimeDesc(Long userId, Pageable pageable); + + Page findByUserIdAndTypeOrderByCreatedTimeDesc(Long userId, FileType type, Pageable pageable); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/request/AnalysisRequest.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/request/AnalysisRequest.java new file mode 100644 index 0000000000..4338629157 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/request/AnalysisRequest.java @@ -0,0 +1,45 @@ +/******************************************************************************** + * Copyright (c) 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ +package org.example.jfranalyzerbackend.request; + +import lombok.Getter; + +import java.io.InputStream; +import java.nio.file.Path; + +@Getter +public class AnalysisRequest { + private final int parallelWorkers; + private final Path input; + private final InputStream inputStream; + private final int dimensions; + + public AnalysisRequest(Path input, int dimensions) { + this(1, input, dimensions); + } + + public AnalysisRequest(InputStream stream, int dimensions) { + this(1, null, stream, dimensions); + } + + public AnalysisRequest(int parallelWorkers, Path input, int dimensions) { + this(parallelWorkers, input, null, dimensions); + } + + private AnalysisRequest(int parallelWorkers, Path p, InputStream stream, int dimensions) { + this.parallelWorkers = parallelWorkers; + this.input = p; + this.dimensions = dimensions; + this.inputStream = stream; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/FileService.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/FileService.java new file mode 100644 index 0000000000..6cc46bfd21 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/FileService.java @@ -0,0 +1,23 @@ +package org.example.jfranalyzerbackend.service; + +import org.example.jfranalyzerbackend.dto.FileView; +import org.example.jfranalyzerbackend.enums.FileType; +import org.example.jfranalyzerbackend.vo.PageView; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.Optional; + +public interface FileService { + + PageView getUserFileViews(FileType type, int page, int pageSize); + + Long handleUploadRequest(FileType type, MultipartFile file) throws IOException; + + void deleteById(Long fileId); + + FileView getFileViewById(Long fileId); + + String getFilePathById(Long fileId); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/JFRAnalysisService.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/JFRAnalysisService.java new file mode 100644 index 0000000000..6d0413c62e --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/JFRAnalysisService.java @@ -0,0 +1,15 @@ +package org.example.jfranalyzerbackend.service; + +import org.example.jfranalyzerbackend.vo.FlameGraph; +import org.example.jfranalyzerbackend.vo.Metadata; + +import java.nio.file.Path; +import java.util.List; +import java.util.Map; + +public interface JFRAnalysisService { + Metadata getMetadata(); + boolean isValidJFRFile(Path path); + FlameGraph analyzeAndGenerateFlameGraph(Path path, String dimension, boolean include, List taskSet, Map options); + List getSupportedDimensions(); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/JFRAnalyzer.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/JFRAnalyzer.java new file mode 100644 index 0000000000..0175d08504 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/JFRAnalyzer.java @@ -0,0 +1,15 @@ + + +package org.example.jfranalyzerbackend.service; + + + +import org.example.jfranalyzerbackend.vo.FlameGraph; +import org.example.jfranalyzerbackend.vo.Metadata; + +import java.util.List; + +public interface JFRAnalyzer { + Metadata metadata(); + FlameGraph getFlameGraph(String dimension, boolean include, List taskSet); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/UserService.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/UserService.java new file mode 100644 index 0000000000..484eeaf9f0 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/UserService.java @@ -0,0 +1,10 @@ +package org.example.jfranalyzerbackend.service; + +import org.springframework.stereotype.Component; + +@Component +public class UserService { + public long getCurrentUserId(){ + return 1L; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/FileServiceImpl.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/FileServiceImpl.java new file mode 100644 index 0000000000..a4c1c59fd7 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/FileServiceImpl.java @@ -0,0 +1,150 @@ +package org.example.jfranalyzerbackend.service.impl; + +import jakarta.transaction.Transactional; +import org.example.jfranalyzerbackend.config.ArthasConfig; +import org.example.jfranalyzerbackend.dto.FileView; +import org.example.jfranalyzerbackend.entity.shared.file.DeletedFileEntity; +import org.example.jfranalyzerbackend.entity.shared.file.FileEntity; +import org.example.jfranalyzerbackend.enums.FileType; +import org.example.jfranalyzerbackend.exception.CommonException; +import org.example.jfranalyzerbackend.repository.FileRepo; +import org.example.jfranalyzerbackend.repository.DeletedFileRepo; +import org.example.jfranalyzerbackend.service.FileService; +import org.example.jfranalyzerbackend.service.UserService; +import org.example.jfranalyzerbackend.util.FileViewConverter; +import org.example.jfranalyzerbackend.vo.PageView; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.UUID; + +@Component +public class FileServiceImpl implements FileService { + + private static final Logger log = LoggerFactory.getLogger(FileServiceImpl.class); + + @Autowired + private UserService userService; + + @Autowired + private FileRepo fileRepo; + + @Autowired + private ArthasConfig arthasConfig; + + @Autowired + private DeletedFileRepo deletedFileRepo; + + + @Override + public PageView getUserFileViews(FileType type, int page, int pageSize) { + log.info("getUserFileViews"); + PageRequest pageRequest = PageRequest.of(page - 1, pageSize); + //Todo: 现在写死状态,之后修改为用户--handshake + Long userId = userService.getCurrentUserId(); + + //获取page实体 + Page files = (type == null) + ? fileRepo.findByUserIdOrderByCreatedTimeDesc(userId, pageRequest) + : fileRepo.findByUserIdAndTypeOrderByCreatedTimeDesc(userId, type, pageRequest); + + List views = files.getContent().stream() + .map(FileViewConverter::convert) + .toList(); + + return new PageView<>(page, pageSize, (int) files.getTotalElements(), views); + } + + @Override + @Transactional + public Long handleUploadRequest(FileType type, MultipartFile file) throws IOException { + //TODO: 目前不支持分布式存储--不需要支持 + String uniqueName = UUID.randomUUID().toString() + "_" + file.getOriginalFilename(); + String originalName = file.getOriginalFilename() != null ? file.getOriginalFilename() : "unknown.file"; + long size = file.getSize(); + //Todo: 现在写死状态,之后修改为用户--handshake + Long userId = userService.getCurrentUserId(); + +// // 文件保存路径 存在本地 +// Path savePath = Paths.get("upload", uniqueName); +// Files.createDirectories(savePath.getParent()); +// file.transferTo(savePath.toFile()); + // 使用配置的路径 + Path savePath = Paths.get(arthasConfig.getJfrStoragePath(), uniqueName); + Files.createDirectories(savePath.getParent()); + file.transferTo(savePath.toFile()); + + // 数据库存储 + FileEntity entity = new FileEntity(); + entity.setUniqueName(uniqueName); + entity.setOriginalName(originalName); + entity.setType(type); + entity.setSize(size); + entity.setUserId(userId); + + return fileRepo.save(entity).getId(); + } + + @Override + public void deleteById(Long fileId) { + FileEntity entity = fileRepo.findById(fileId) + .orElseThrow(() -> new CommonException(org.example.jfranalyzerbackend.enums.ServerErrorCode.FILE_NOT_FOUND)); + + if (!entity.getUserId().equals(userService.getCurrentUserId())) { + throw new CommonException(org.example.jfranalyzerbackend.enums.ServerErrorCode.FILE_NOT_FOUND); + } + + // 构建删除记录 + DeletedFileEntity deletedFile = new DeletedFileEntity(); + deletedFile.setUniqueName(entity.getUniqueName()); + deletedFile.setOriginalName(entity.getOriginalName()); + deletedFile.setType(entity.getType()); + deletedFile.setSize(entity.getSize()); + deletedFile.setOriginalCreatedTime(entity.getCreatedTime()); + + fileRepo.deleteById(fileId); + deletedFileRepo.save(deletedFile); + + // 清理实际文件(磁盘) + try { + Path filePath = Paths.get(arthasConfig.getJfrStoragePath(), entity.getUniqueName()); + Files.deleteIfExists(filePath); + } catch (Exception e) { + log.warn("Failed to delete file from disk: {}", e.getMessage()); + } + } + + @Override + public FileView getFileViewById(Long fileId) { + FileEntity entity = fileRepo.findById(fileId) + .orElse(null); + + if (entity == null) { + return null; + } + + // 检查用户权限 + if (!entity.getUserId().equals(userService.getCurrentUserId())) { + return null; + } + + return FileViewConverter.convert(entity); + } + + @Override + public String getFilePathById(Long fileId) { + FileEntity entity = fileRepo.findById(fileId) + .orElseThrow(() -> new CommonException(org.example.jfranalyzerbackend.enums.ServerErrorCode.FILE_NOT_FOUND)); + return Paths.get(arthasConfig.getJfrStoragePath(), entity.getUniqueName()).toString(); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/JFRAnalysisServiceImpl.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/JFRAnalysisServiceImpl.java new file mode 100644 index 0000000000..60abd9d41c --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/JFRAnalysisServiceImpl.java @@ -0,0 +1,51 @@ +package org.example.jfranalyzerbackend.service.impl; + +import org.example.jfranalyzerbackend.service.JFRAnalysisService; +import org.example.jfranalyzerbackend.vo.FlameGraph; +import org.example.jfranalyzerbackend.vo.Metadata; +import org.example.jfranalyzerbackend.entity.PerfDimensionFactory; +import org.example.jfranalyzerbackend.model.PerfDimension; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class JFRAnalysisServiceImpl implements JFRAnalysisService { + private static final Logger log = LoggerFactory.getLogger(JFRAnalysisServiceImpl.class); + + @Override + public Metadata getMetadata() { + // 直接复用 JFRAnalyzerImpl 的 metadata 逻辑 + return new JFRAnalyzerImpl(null, null, null).metadata(); + } + + @Override + public boolean isValidJFRFile(Path path) { + try { + return path != null && Files.exists(path) && Files.isRegularFile(path); + } catch (Exception e) { + log.warn("JFR文件校验异常: {}", e.getMessage()); + return false; + } + } + + @Override + public FlameGraph analyzeAndGenerateFlameGraph(Path path, String dimension, boolean include, List taskSet, Map options) { + JFRAnalyzerImpl analyzer = new JFRAnalyzerImpl(path, options, null); + return analyzer.getFlameGraph(dimension, include, taskSet); + } + + @Override + public List getSupportedDimensions() { + return Arrays.stream(PerfDimensionFactory.PERF_DIMENSIONS) + .map(PerfDimension::getKey) + .collect(Collectors.toList()); + } +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/JFRAnalyzerImpl.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/JFRAnalyzerImpl.java new file mode 100644 index 0000000000..fdd4579e42 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/service/impl/JFRAnalyzerImpl.java @@ -0,0 +1,436 @@ + +package org.example.jfranalyzerbackend.service.impl; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.apache.tomcat.util.http.fileupload.ProgressListener; +import org.example.jfranalyzerbackend.entity.ProfileDimension; +import org.example.jfranalyzerbackend.exception.ProfileAnalysisException; +import org.example.jfranalyzerbackend.extractor.*; +import org.example.jfranalyzerbackend.model.*; +import org.example.jfranalyzerbackend.model.jfr.RecordedEvent; +import org.example.jfranalyzerbackend.request.AnalysisRequest; +import org.example.jfranalyzerbackend.service.JFRAnalyzer; +import org.example.jfranalyzerbackend.util.DimensionBuilder; +import org.example.jfranalyzerbackend.vo.FlameGraph; +import org.example.jfranalyzerbackend.vo.Metadata; +import org.openjdk.jmc.common.item.IItem; +import org.openjdk.jmc.common.item.IItemCollection; +import org.openjdk.jmc.common.item.IItemIterable; +import org.openjdk.jmc.common.util.IPreferenceValueProvider; +import org.openjdk.jmc.flightrecorder.JfrLoaderToolkit; +import org.openjdk.jmc.flightrecorder.rules.IResult; +import org.openjdk.jmc.flightrecorder.rules.IRule; +import org.openjdk.jmc.flightrecorder.rules.RuleRegistry; +import org.openjdk.jmc.flightrecorder.rules.Severity; +import org.example.jfranalyzerbackend.entity.PerfDimensionFactory; + +import java.nio.file.Path; +import java.util.*; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.RunnableFuture; +import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; + + + +@SuppressWarnings("unchecked") +@Slf4j +public class JFRAnalyzerImpl implements JFRAnalyzer { + + private final ProgressListener listener; + private final JFRAnalysisContext context; + + @Getter + private final AnalysisResult result; + + public JFRAnalyzerImpl(Path path, Map options, ProgressListener listener) { + this(path, DimensionBuilder.ALL, options, listener); + } + + public JFRAnalyzerImpl(Path path, int dimension, Map options, ProgressListener listener) { + AnalysisRequest request = new AnalysisRequest(path, dimension); + this.listener = listener; + this.context = new JFRAnalysisContext(request); + try { + this.result = this.execute(request); + } catch (RuntimeException t) { + throw t; + } catch (Throwable t) { + throw new RuntimeException(t); + } + } + + @Override + public FlameGraph getFlameGraph(String dimension, boolean include, List taskSet) { + return createFlameGraph(ProfileDimension.of(dimension), result, include, taskSet); + } + + @Override + public Metadata metadata() { + Metadata basic = new Metadata(); + basic.setPerfDimensions(PerfDimensionFactory.PERF_DIMENSIONS); + return basic; + } + + private FlameGraph createFlameGraph(ProfileDimension dimension, AnalysisResult result, boolean include, + List taskSet) { + List os = new ArrayList<>(); + Map names = new HashMap<>(); + SymbolMap symbolTable = new SymbolMap(); + if (dimension == ProfileDimension.CPU) { + DimensionResult cpuTime = result.getCpuTime(); + generateCpuTime(cpuTime, os, names, symbolTable, include, taskSet); + } else { + DimensionResult DimensionResult = switch (dimension) { + case CPU_SAMPLE -> result.getCpuSample(); + case WALL_CLOCK -> result.getWallClock(); + case NATIVE_EXECUTION_SAMPLES -> result.getNativeExecutionSamples(); + case ALLOC -> result.getAllocations(); + case MEM -> result.getAllocatedMemory(); + case FILE_IO_TIME -> result.getFileIOTime(); + case FILE_READ_SIZE -> result.getFileReadSize(); + case FILE_WRITE_SIZE -> result.getFileWriteSize(); + case SOCKET_READ_TIME -> result.getSocketReadTime(); + case SOCKET_READ_SIZE -> result.getSocketReadSize(); + case SOCKET_WRITE_TIME -> result.getSocketWriteTime(); + case SOCKET_WRITE_SIZE -> result.getSocketWriteSize(); + case SYNCHRONIZATION -> result.getSynchronization(); + case THREAD_PARK -> result.getThreadPark(); + case CLASS_LOAD_COUNT -> result.getClassLoadCount(); + case CLASS_LOAD_WALL_TIME -> result.getClassLoadWallTime(); + case THREAD_SLEEP -> result.getThreadSleepTime(); + default -> throw new RuntimeException("should not reach here"); + }; + generate(DimensionResult, os, names, symbolTable, include, taskSet); + } + + FlameGraph fg = new FlameGraph(); + fg.setData(os.toArray(new Object[0][])); + fg.setThreadSplit(names); + fg.setSymbolTable(symbolTable.getReverseMap()); + log.debug("FlameGraph: {}", fg); + log.debug("SymbolTable: {}", fg.getSymbolTable()); + return fg; + } + + private void generate(DimensionResult result, List os, Map names, + SymbolMap map, boolean include, List taskSet) { + List list = result.getList(); + Set set = null; + if (taskSet != null) { + set = new HashSet<>(taskSet); + } + for (TaskResultBase ts : list) { + if (set != null && !set.isEmpty()) { + if (include && !set.contains(ts.getTask().getName())) { + continue; + } else if (!include && set.contains(ts.getTask().getName())) { + continue; + } + } + this.doTaskResult(ts, os, names, map); + } + } + + private void doTaskResult(TaskResultBase taskResult, List os, Map names, SymbolMap map) { + Map samples = taskResult.getSamples(); + long total = 0; + for (StackTrace s : samples.keySet()) { + Frame[] frames = s.getFrames(); + String[] fs = new String[frames.length]; + for (int i = frames.length - 1, j = 0; i >= 0; i--, j++) { + fs[j] = frames[i].toString(); + } + Object[] o = new Object[3]; + o[0] = map.processSymbols(fs); + o[1] = samples.get(s); + o[2] = taskResult.getTask().getName(); + os.add(o); + total += samples.get(s); + } + names.put(taskResult.getTask().getName(), total); + } + + private static boolean isTaskNameIn(String taskName, List taskList) { + for (String name : taskList) { + if (taskName.contains(name)) { + return true; + } + } + return false; + } + + private void generateCpuTime(DimensionResult result, List os, + Map names, SymbolMap map, boolean include, List taskSet) { + List list = result.getList(); + for (TaskCPUTime ct : list) { + if (taskSet != null && !taskSet.isEmpty()) { + if (include) { + if (!isTaskNameIn(ct.getTask().getName(), taskSet)) { + continue; + } + } else { + if (isTaskNameIn(ct.getTask().getName(), taskSet)) { + continue; + } + } + } + + Map samples = ct.getSamples(); + if (samples != null && !samples.isEmpty()) { + long taskTotalTime = ct.getUser() + ct.getSystem(); + AtomicLong sampleCount = new AtomicLong(); + samples.values().forEach(sampleCount::addAndGet); + long perSampleTime = taskTotalTime / sampleCount.get(); + + for (StackTrace s : samples.keySet()) { + Frame[] frames = s.getFrames(); + String[] fs = new String[frames.length]; + for (int i = frames.length - 1, j = 0; i >= 0; i--, j++) { + fs[j] = frames[i].toString(); + } + Object[] o = new Object[3]; + o[0] = map.processSymbols(fs); + o[1] = samples.get(s) * perSampleTime; + o[2] = ct.getTask().getName(); + os.add(o); + } + + names.put(ct.getTask().getName(), taskTotalTime); + } + } + } + + private static class SymbolMap { + private final Map map = new HashMap<>(); + + String[] processSymbols(String[] fs) { + if (fs == null || fs.length == 0) { + return fs; + } + + String[] result = new String[fs.length]; + + synchronized (map) { + for (int i = 0; i < fs.length; i++) { + String symbol = fs[i]; + int id; + if (map.containsKey(symbol)) { + id = map.get(symbol); + } else { + id = map.size() + 1; + map.put(symbol, id); + } + result[i] = String.valueOf(id); + } + } + + return result; + } + + Map getReverseMap() { + Map reverseMap = new HashMap<>(); + map.forEach((key, value) -> reverseMap.put(value, key)); + return reverseMap; + } + } + + public AnalysisResult execute(AnalysisRequest request) throws ProfileAnalysisException { + try { + return analyze(request); + } catch (Exception e) { + if (e instanceof ProfileAnalysisException) { + throw (ProfileAnalysisException) e; + } + throw new ProfileAnalysisException(e); + } + } + + private AnalysisResult analyze(AnalysisRequest request) throws Exception { +// listener.beginTask("Analyzing", 5); + long startTime = System.currentTimeMillis(); + AnalysisResult r = new AnalysisResult(); + + IItemCollection collection = this.loadEvents(request); + + this.analyzeProblemsIfNeeded(request, collection, r); + + this.transformEvents(request, collection); + + this.sortEvents(); + + this.processEvents(request, r); + + r.setProcessingTimeMillis(System.currentTimeMillis() - startTime); + log.info(String.format("Analysis took %d milliseconds", r.getProcessingTimeMillis())); + + return r; + } + + private void processEvents(AnalysisRequest request, AnalysisResult r) throws Exception { +// listener.subTask("Do Extractors"); + List events = this.context.getEvents(); + final List extractors = getExtractors(request); + + if (request.getParallelWorkers() > 1) { + CountDownLatch countDownLatch = new CountDownLatch(extractors.size()); + ExecutorService es = Executors.newFixedThreadPool(request.getParallelWorkers()); + extractors.forEach(item -> es.submit(() -> { + try { + doExtractorWork(events, item, r); + } catch (Exception e) { + log.error(e.getMessage(), e); + } finally { + countDownLatch.countDown(); + } + })); + countDownLatch.await(); + es.shutdown(); + } else { + extractors.forEach(item -> { + doExtractorWork(events, item, r); + }); + } +// listener.worked(1); + } + + private void doExtractorWork(List events, Extractor extractor, AnalysisResult r) { + events.forEach(extractor::process); + extractor.fillResult(r); + } + + private List getExtractors(AnalysisRequest request) { + return getExtractors(request.getDimensions()); + } + + private void sortEvents() { +// listener.subTask("Sort Events"); + this.context.getEvents().sort(Comparator.comparing(RecordedEvent::getStartTime)); +// listener.worked(1); + } + + private void transformEvents(AnalysisRequest request, IItemCollection collection) throws Exception { +// listener.subTask("Transform Events"); + List list = collection.stream().flatMap(IItemIterable::stream).collect(Collectors.toList()); + + if (request.getParallelWorkers() > 1) { + parseEventsParallel(list, request.getParallelWorkers()); + } else { + list.forEach(this::parseEventItem); + } + +// listener.worked(1); + } + + private IItemCollection loadEvents(AnalysisRequest request) throws Exception { + try { +// listener.subTask("Load Events"); + if (request.getInput() != null) { + return JfrLoaderToolkit.loadEvents(request.getInput().toFile()); + } else { + return JfrLoaderToolkit.loadEvents(request.getInputStream()); + } + } finally { +// listener.worked(1); + } + } + + private void analyzeProblemsIfNeeded(AnalysisRequest request, IItemCollection collection, AnalysisResult r) { +// listener.subTask("Analyze Problems"); + if ((request.getDimensions() & ProfileDimension.PROBLEMS.getValue()) != 0) { + this.analyzeProblems(collection, r); + } +// listener.worked(1); + } + + private void parseEventsParallel(List list, int workers) throws Exception { +// listener.subTask("Transform Events"); + CountDownLatch countDownLatch = new CountDownLatch(list.size()); + ExecutorService es = Executors.newFixedThreadPool(workers); + list.forEach(item -> es.submit(() -> { + try { + this.parseEventItem(item); + } catch (Exception e) { + log.error(e.getMessage(), e); + } finally { + countDownLatch.countDown(); + } + })); + countDownLatch.await(); + es.shutdown(); +// listener.worked(workers); + } + + private void analyzeProblems(IItemCollection collection, AnalysisResult r) { + r.setProblems(new ArrayList<>()); + for (IRule rule : RuleRegistry.getRules()) { + RunnableFuture future; + try { + future = rule.createEvaluation(collection, IPreferenceValueProvider.DEFAULT_VALUES, null); + future.run(); + IResult result = future.get(); + Severity severity = result.getSeverity(); + if (severity == Severity.WARNING) { + r.getProblems().add(new Problem(result.getSummary(), result.getSolution())); + } + } catch (Throwable t) { + log.error("Failed to run jmc rule {}", rule.getName()); + } + } + } + + private void parseEventItem(IItem item) { + RecordedEvent event = RecordedEvent.newInstance(item, this.context.getSymbols()); + + synchronized (this.context.getEvents()) { + this.context.addEvent(event); + if (event.getActiveSetting() != null) { + RecordedEvent.ActiveSetting activeSetting = event.getActiveSetting(); + this.context.putEventTypeId(activeSetting.eventType(), activeSetting.eventId()); + this.context.putActiveSetting(activeSetting, event); + } + } + } + + private List getExtractors(int dimensions) { + List extractors = new ArrayList<>(); + Map extractorMap = new HashMap<>() { + { + put(DimensionBuilder.CPU, new CPUTimeExtractor(context)); + put(DimensionBuilder.CPU_SAMPLE, new CPUSampleExtractor(context)); + put(DimensionBuilder.WALL_CLOCK, new WallClockExtractor(context)); + put(DimensionBuilder.NATIVE_EXECUTION_SAMPLES, new NativeExecutionExtractor(context)); + put(DimensionBuilder.ALLOC, new AllocationsExtractor(context)); + put(DimensionBuilder.MEM, new AllocatedMemoryExtractor(context)); + + put(DimensionBuilder.FILE_IO_TIME, new FileIOTimeExtractor(context)); + put(DimensionBuilder.FILE_READ_SIZE, new FileReadExtractor(context)); + put(DimensionBuilder.FILE_WRITE_SIZE, new FileWriteExtractor(context)); + + put(DimensionBuilder.SOCKET_READ_TIME, new SocketReadTimeExtractor(context)); + put(DimensionBuilder.SOCKET_READ_SIZE, new SocketReadSizeExtractor(context)); + put(DimensionBuilder.SOCKET_WRITE_TIME, new SocketWriteTimeExtractor(context)); + put(DimensionBuilder.SOCKET_WRITE_SIZE, new SocketWriteSizeExtractor(context)); + + put(DimensionBuilder.SYNCHRONIZATION, new SynchronizationExtractor(context)); + put(DimensionBuilder.THREAD_PARK, new ThreadParkExtractor(context)); + + put(DimensionBuilder.CLASS_LOAD_COUNT, new ClassLoadCountExtractor(context)); + put(DimensionBuilder.CLASS_LOAD_WALL_TIME, new ClassLoadWallTimeExtractor(context)); + + put(DimensionBuilder.THREAD_SLEEP, new ThreadSleepTimeExtractor(context)); + } + }; + + extractorMap.keySet().forEach(item -> { + if ((dimensions & item) != 0) { + extractors.add(extractorMap.get(item)); + } + }); + + return extractors; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/DescriptorUtil.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/DescriptorUtil.java new file mode 100644 index 0000000000..cd7218381a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/DescriptorUtil.java @@ -0,0 +1,35 @@ +package org.example.jfranalyzerbackend.util; + + +import java.util.HashMap; +import java.util.Map; +import org.objectweb.asm.Type; + +public class DescriptorUtil { + private final Map CACHE = new HashMap<>(); + public String decodeMethodArgs(String descriptor) { + if (descriptor == null || descriptor.isEmpty()) { + return ""; + } + if (CACHE.containsKey(descriptor)) { + return CACHE.get(descriptor); + } + Type methodType = Type.getMethodType(descriptor); + StringBuilder b = new StringBuilder("("); + Type[] argTypes = methodType.getArgumentTypes(); + for (int ix = 0; ix < argTypes.length; ix++) { + if (ix != 0) { + b.append(", "); + } + b.append(trimPackage(argTypes[ix].getClassName())); + } + b.append(')'); + String str = b.toString(); + CACHE.put(descriptor, str); + return str; + } + + private static String trimPackage(String className) { + return className.contains(".") ? className.substring(className.lastIndexOf(".") + 1) : className; + } +} \ No newline at end of file diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/DimensionBuilder.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/DimensionBuilder.java new file mode 100644 index 0000000000..7f44423a6a --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/DimensionBuilder.java @@ -0,0 +1,136 @@ + +package org.example.jfranalyzerbackend.util; + + +import org.example.jfranalyzerbackend.entity.ProfileDimension; + +public class DimensionBuilder { + public static final int CPU = ProfileDimension.CPU.getValue(); + public static final int CPU_SAMPLE = ProfileDimension.CPU_SAMPLE.getValue(); + public static final int WALL_CLOCK = ProfileDimension.WALL_CLOCK.getValue(); + public static final int NATIVE_EXECUTION_SAMPLES = ProfileDimension.NATIVE_EXECUTION_SAMPLES.getValue(); + public static final int ALLOC = ProfileDimension.ALLOC.getValue(); + public static final int MEM = ProfileDimension.MEM.getValue(); + public static final int FILE_IO_TIME = ProfileDimension.FILE_IO_TIME.getValue(); + public static final int FILE_WRITE_SIZE = ProfileDimension.FILE_WRITE_SIZE.getValue(); + public static final int FILE_READ_SIZE = ProfileDimension.FILE_READ_SIZE.getValue(); + public static final int SOCKET_READ_SIZE = ProfileDimension.SOCKET_READ_SIZE.getValue(); + public static final int SOCKET_READ_TIME = ProfileDimension.SOCKET_READ_TIME.getValue(); + public static final int SOCKET_WRITE_SIZE = ProfileDimension.SOCKET_WRITE_SIZE.getValue(); + public static final int SOCKET_WRITE_TIME = ProfileDimension.SOCKET_WRITE_TIME.getValue(); + public static final int SYNCHRONIZATION = ProfileDimension.SYNCHRONIZATION.getValue(); + public static final int THREAD_PARK = ProfileDimension.THREAD_PARK.getValue(); + public static final int CLASS_LOAD_COUNT = ProfileDimension.CLASS_LOAD_COUNT.getValue(); + public static final int CLASS_LOAD_WALL_TIME = ProfileDimension.CLASS_LOAD_WALL_TIME.getValue(); + public static final int THREAD_SLEEP = ProfileDimension.THREAD_SLEEP.getValue(); + + public static final int ALL = CPU | CPU_SAMPLE | WALL_CLOCK | NATIVE_EXECUTION_SAMPLES + | ALLOC | MEM | FILE_IO_TIME | FILE_WRITE_SIZE | FILE_READ_SIZE | SOCKET_READ_SIZE | SOCKET_WRITE_SIZE + | SOCKET_READ_TIME | SOCKET_WRITE_TIME | SYNCHRONIZATION | THREAD_PARK + | CLASS_LOAD_COUNT | CLASS_LOAD_WALL_TIME | THREAD_SLEEP; + + private int dimensions = 0; + + public static DimensionBuilder newInstance() { + return new DimensionBuilder(); + } + + public DimensionBuilder enableCPU() { + this.dimensions |= CPU; + return this; + } + + public DimensionBuilder enableCPUSample() { + this.dimensions |= CPU_SAMPLE; + return this; + } + + public DimensionBuilder enableWallClock() { + this.dimensions |= WALL_CLOCK; + return this; + } + + public DimensionBuilder enableNative() { + this.dimensions |= NATIVE_EXECUTION_SAMPLES; + return this; + } + + public DimensionBuilder enableAllocCount() { + this.dimensions |= ALLOC; + return this; + } + + public DimensionBuilder enableAllocSize() { + this.dimensions |= MEM; + return this; + } + + public DimensionBuilder enableFileIOTime() { + this.dimensions |= FILE_IO_TIME; + return this; + } + + public DimensionBuilder enableFileWriteSize() { + this.dimensions |= FILE_WRITE_SIZE; + return this; + } + + public DimensionBuilder enableFileReadSize() { + this.dimensions |= FILE_READ_SIZE; + return this; + } + + public DimensionBuilder enableSocketReadTime() { + this.dimensions |= SOCKET_READ_TIME; + return this; + } + + public DimensionBuilder enableSocketReadSize() { + this.dimensions |= SOCKET_READ_SIZE; + return this; + } + + public DimensionBuilder enableSocketWriteSize() { + this.dimensions |= SOCKET_WRITE_SIZE; + return this; + } + + public DimensionBuilder enableSocketWriteTime() { + this.dimensions |= SOCKET_WRITE_TIME; + return this; + } + + public DimensionBuilder enableThreadPark() { + this.dimensions |= THREAD_PARK; + return this; + } + + public DimensionBuilder enableSynchronization() { + this.dimensions |= SYNCHRONIZATION; + return this; + } + + public DimensionBuilder enableClassLoadTime() { + this.dimensions |= CLASS_LOAD_WALL_TIME; + return this; + } + + public DimensionBuilder enableClassLoadCount() { + this.dimensions |= CLASS_LOAD_COUNT; + return this; + } + + public DimensionBuilder enableThreadSleep() { + this.dimensions |= THREAD_SLEEP; + return this; + } + + public DimensionBuilder enableALL() { + this.dimensions = ALL; + return this; + } + + public int build() { + return this.dimensions; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/EventConstant.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/EventConstant.java new file mode 100644 index 0000000000..4573d6f82b --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/EventConstant.java @@ -0,0 +1,58 @@ +/******************************************************************************** + * Copyright (c) 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ + +package org.example.jfranalyzerbackend.util; + +public abstract class EventConstant { + public static String UNSIGNED_INT_FLAG = "jdk.UnsignedIntFlag"; + public static String GARBAGE_COLLECTION = "jdk.GarbageCollection"; + + public static String CPU_INFORMATION = "jdk.CPUInformation"; + public static String CPC_RUNTIME_INFORMATION = "cpc.RuntimeInformation"; + public static String ENV_VAR = "jdk.InitialEnvironmentVariable"; + + public static String PROCESS_CPU_LOAD = "jdk.CPULoad"; + public static String ACTIVE_SETTING = "jdk.ActiveSetting"; + + public static String THREAD_START = "jdk.ThreadStart"; + public static String THREAD_CPU_LOAD = "jdk.ThreadCPULoad"; + public static String EXECUTION_SAMPLE = "jdk.ExecutionSample"; + public static String WALL_CLOCK_SAMPLE = "jdk.ExecutionSample"; + public static String NATIVE_EXECUTION_SAMPLE = "jdk.NativeMethodSample"; + public static String EXECUTE_VM_OPERATION = "jdk.ExecuteVMOperation"; + + public static String OBJECT_ALLOCATION_SAMPLE = "jdk.ObjectAllocationSample"; + public static String OBJECT_ALLOCATION_IN_NEW_TLAB = "jdk.ObjectAllocationInNewTLAB"; + public static String OBJECT_ALLOCATION_OUTSIDE_TLAB = "jdk.ObjectAllocationOutsideTLAB"; + + public static String FILE_WRITE = "jdk.FileWrite"; + public static String FILE_READ = "jdk.FileRead"; + public static String FILE_FORCE = "jdk.FileForce"; + + public static String SOCKET_READ = "jdk.SocketRead"; + public static String SOCKET_WRITE = "jdk.SocketWrite"; + + public static String JAVA_MONITOR_ENTER = "jdk.JavaMonitorEnter"; + public static String JAVA_MONITOR_WAIT = "jdk.JavaMonitorWait"; + public static String THREAD_PARK = "jdk.ThreadPark"; + + public static String CLASS_LOAD = "jdk.ClassLoad"; + + public static String THREAD_SLEEP = "jdk.ThreadSleep"; + + public static String PERIOD = "period"; + + public static String INTERVAL = "interval"; + public static String WALL = "wall"; + public static String EVENT = "event"; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/FileViewConverter.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/FileViewConverter.java new file mode 100644 index 0000000000..f9debdd01b --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/FileViewConverter.java @@ -0,0 +1,17 @@ +package org.example.jfranalyzerbackend.util; + +import org.example.jfranalyzerbackend.dto.FileView; +import org.example.jfranalyzerbackend.entity.shared.file.FileEntity; + +public class FileViewConverter { + public static FileView convert(FileEntity entity) { + return new FileView( + entity.getId(), + entity.getUniqueName(), + entity.getOriginalName(), + entity.getSize(), + entity.getType(), + entity.getCreatedTime() + ); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/GCUtil.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/GCUtil.java new file mode 100644 index 0000000000..04c737f24d --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/GCUtil.java @@ -0,0 +1,50 @@ +/******************************************************************************** + * Copyright (c) 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ +package org.example.jfranalyzerbackend.util; + +import java.util.ArrayList; +import java.util.List; + +public class GCUtil { + // JDK 8 default: ParallelScavenge + ParallelOld + // CMS: ParNew + ConcurrentMarkSweep + SerialOld + // G1: G1New + G1Old + SerialOld + + private static final List PARALLEL_GC = new ArrayList() {{ + add("G1New"); + add("ParNew"); + add("ParallelScavenge"); + add("ParallelOld"); + }}; + + private static final List CONCURRENT_GC = new ArrayList() {{ + add("G1Old"); + add("ConcurrentMarkSweep"); + }}; + + private static final List SERIAL_GC = new ArrayList() {{ + add("SerialOld"); + }}; + + public static boolean isConcGC(String name) { + return CONCURRENT_GC.contains(name); + } + + public static boolean isParallelGC(String name) { + return PARALLEL_GC.contains(name); + } + + public static boolean isSerialGC(String name) { + return SERIAL_GC.contains(name); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/PagingRequest.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/PagingRequest.java new file mode 100644 index 0000000000..ea9df94a6f --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/PagingRequest.java @@ -0,0 +1,44 @@ +package org.example.jfranalyzerbackend.util; + +public class PagingRequest { + // page index starts with 1 + private int page; + + // page size, must be greater than 0 + private int pageSize; + + public int getPage() { + return page; + } + + public int getPageSize() { + return pageSize; + } + + /** + * Create a new PagingRequest + * + * @param page page index, starts with 1 + * @param pageSize page size, must be greater than 0 + */ + public PagingRequest(int page, int pageSize) { +// Validate.isTrue(page >= 1 && pageSize >= 1); + this.page = page; + this.pageSize = pageSize; + } + + /** + * @return from index (inclusive), starts with 0 + */ + public int from() { + return (page - 1) * pageSize; + } + + /** + * @param totalSize total size of the elements + * @return end index (exclusive) + */ + public int to(int totalSize) { + return Math.min(from() + pageSize, totalSize); + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/StackTraceUtil.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/StackTraceUtil.java new file mode 100644 index 0000000000..1827b8d4e0 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/StackTraceUtil.java @@ -0,0 +1,105 @@ +/******************************************************************************** + * Copyright (c) 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ +package org.example.jfranalyzerbackend.util; + + + +import org.example.jfranalyzerbackend.model.Frame; +import org.example.jfranalyzerbackend.model.JavaFrame; +import org.example.jfranalyzerbackend.model.JavaMethod; +import org.example.jfranalyzerbackend.model.StackTrace; +import org.example.jfranalyzerbackend.model.jfr.RecordedClass; +import org.example.jfranalyzerbackend.model.jfr.RecordedFrame; +import org.example.jfranalyzerbackend.model.jfr.RecordedMethod; +import org.example.jfranalyzerbackend.model.jfr.RecordedStackTrace; +import org.example.jfranalyzerbackend.model.symbol.SymbolBase; +import org.example.jfranalyzerbackend.model.symbol.SymbolTable; + +import java.util.ArrayList; +import java.util.List; + +public class StackTraceUtil { + public static final RecordedStackTrace DUMMY_STACK_TRACE = StackTraceUtil.newDummyStackTrace("", "", "NO Frame"); + + // FIXME: need cache + public static StackTrace build(RecordedStackTrace stackTrace, SymbolTable symbols) { + StackTrace result = new StackTrace(); + result.setTruncated(stackTrace.isTruncated()); + + DescriptorUtil util = new DescriptorUtil(); + List srcFrames = stackTrace.getFrames(); + Frame[] dstFrames = new Frame[srcFrames.size()]; + for (int i = 0; i < srcFrames.size(); i++) { + RecordedFrame frame = srcFrames.get(i); + Frame dstFrame; + if (frame.isJavaFrame()) { + dstFrame = new JavaFrame(); + ((JavaFrame) dstFrame).setJavaFrame(frame.isJavaFrame()); + ((JavaFrame) dstFrame).setType(JavaFrame.Type.typeOf(frame.getType())); + ((JavaFrame) dstFrame).setBci(frame.getBytecodeIndex()); + } else { + dstFrame = new Frame(); + } + + RecordedMethod method = frame.getMethod(); + JavaMethod dstMethod = new JavaMethod(); + dstMethod.setPackageName(method.getType().getPackageName()); + dstMethod.setType(method.getType().getName()); + dstMethod.setName(method.getName()); + dstMethod.setDescriptor(util.decodeMethodArgs(method.getDescriptor())); + + dstMethod.setModifiers(method.getModifiers()); + dstMethod.setHidden(method.isHidden()); + if (symbols.isContains(dstMethod)) { + dstMethod = (JavaMethod) symbols.get(dstMethod); + } else { + symbols.put(dstMethod); + } + + dstFrame.setMethod(dstMethod); + dstFrame.setLine(frame.getLineNumber()); + if (symbols.isContains(dstFrame)) { + dstFrame = (Frame) symbols.get(dstFrame); + } else { + symbols.put(dstFrame); + } + + dstFrames[i] = dstFrame; + } + + result.setFrames(dstFrames); + if (symbols.isContains(result)) { + result = (StackTrace) symbols.get(result); + } else { + symbols.put(result); + } + + return result; + } + + public static RecordedStackTrace newDummyStackTrace(String packageName, String className, String methodName) { + RecordedStackTrace st = new RecordedStackTrace(); + List list = new ArrayList<>(); + RecordedFrame f = new RecordedFrame(); + RecordedMethod m = new RecordedMethod(); + RecordedClass c = new RecordedClass(); + c.setPackageName(packageName); + c.setName(className); + m.setType(c); + f.setMethod(m); + m.setName(methodName); + list.add(f); + st.setFrames(list); + return st; + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/TimeUtil.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/TimeUtil.java new file mode 100644 index 0000000000..fe9610877c --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/util/TimeUtil.java @@ -0,0 +1,50 @@ +/******************************************************************************** + * Copyright (c) 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + ********************************************************************************/ +package org.example.jfranalyzerbackend.util; + +import static java.util.concurrent.TimeUnit.*; + +public class TimeUtil { + public static long parseTimespan(String s) { + long timeSpan = Long.parseLong(s.substring(0, s.length() - 2).trim()); + if (s.endsWith("ns")) { + return timeSpan; + } + if (s.endsWith("us")) { + return NANOSECONDS.convert(timeSpan, MICROSECONDS); + } + if (s.endsWith("ms")) { + return NANOSECONDS.convert(timeSpan, MILLISECONDS); + } + timeSpan = Long.parseLong(s.substring(0, s.length() - 1).trim()); + if (s.endsWith("s")) { + return NANOSECONDS.convert(timeSpan, SECONDS); + } + if (s.endsWith("m")) { + return 60 * NANOSECONDS.convert(timeSpan, SECONDS); + } + if (s.endsWith("h")) { + return 60 * 60 * NANOSECONDS.convert(timeSpan, SECONDS); + } + if (s.endsWith("d")) { + return 24 * 60 * 60 * NANOSECONDS.convert(timeSpan, SECONDS); + } + + try { + return Long.parseLong(s); + } catch (NumberFormatException nfe) { + // Only accept values with units + throw new NumberFormatException("Timespan '" + s + "' is invalid. Valid units are ns, us, s, m, h and d."); + } + } +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/FlameGraph.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/FlameGraph.java new file mode 100644 index 0000000000..a2de0851cf --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/FlameGraph.java @@ -0,0 +1,11 @@ + +package org.example.jfranalyzerbackend.vo; + +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class FlameGraph extends GraphBase { + private Object[][] data = new Object[0][]; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/GraphBase.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/GraphBase.java new file mode 100644 index 0000000000..a8e62353a2 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/GraphBase.java @@ -0,0 +1,18 @@ + +package org.example.jfranalyzerbackend.vo; + +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Setter +@Getter +public class GraphBase { + private List threads = new ArrayList<>(); + private Map threadSplit = new HashMap<>(); + private Map symbolTable = new HashMap<>(); +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/Metadata.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/Metadata.java new file mode 100644 index 0000000000..9f3e589816 --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/Metadata.java @@ -0,0 +1,13 @@ + +package org.example.jfranalyzerbackend.vo; + +import lombok.Getter; +import lombok.Setter; +import org.example.jfranalyzerbackend.model.PerfDimension; + + +@Setter +@Getter +public class Metadata { + private PerfDimension[] perfDimensions; +} diff --git a/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/PageView.java b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/PageView.java new file mode 100644 index 0000000000..f0a8563a9e --- /dev/null +++ b/arthas-jfr-backend/src/main/java/org/example/jfranalyzerbackend/vo/PageView.java @@ -0,0 +1,89 @@ +package org.example.jfranalyzerbackend.vo; + +import org.example.jfranalyzerbackend.util.PagingRequest; + +import java.util.Collections; +import java.util.List; + +public class PageView { + private static final PageView EMPTY = new PageView<>(null, 0, Collections.emptyList()); + + /** + * Return an empty page view. + * + * @param data type + * @return empty page view + */ + @SuppressWarnings("unchecked") + public static PageView empty() { return (PageView) EMPTY; + } + + private List data; + + private int page; + + private int pageSize; + + private int totalSize; + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getTotalSize() { + return totalSize; + } + + public void setTotalSize(int totalSize) { + this.totalSize = totalSize; + } + + /** + * Create a page view with paging request, total size and data. + * + * @param request paging request + * @param totalSize total size + * @param data data + */ + public PageView(PagingRequest request, int totalSize, List data) { + this.data = data; + this.page = request != null ? request.getPage() : 0; + this.pageSize = request != null ? request.getPageSize() : 0; + this.totalSize = totalSize; + } + + /** + * Create a page view with page index, page size, total size and data. + * + * @param page page index + * @param pageSize page size + * @param totalSize total size + * @param data data + */ + public PageView(int page, int pageSize, int totalSize, List data) { + this.data = data; + this.page = page; + this.pageSize = pageSize; + this.totalSize = totalSize; + } +} diff --git a/arthas-jfr-backend/src/main/resources/application.yml b/arthas-jfr-backend/src/main/resources/application.yml new file mode 100644 index 0000000000..f98e02808d --- /dev/null +++ b/arthas-jfr-backend/src/main/resources/application.yml @@ -0,0 +1,36 @@ +arthas: + jfr-storage-path: ${user.home}/arthas-jfr-storage + +spring: + servlet: + multipart: + max-request-size: 1GB + max-file-size: 1GB + + datasource: + url: ${DB_URL:jdbc:h2:mem:arthas-jfr-db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE} + username: ${DB_USERNAME:sa} + password: ${DB_PASSWORD:} + driver-class-name: ${DB_DRIVER:org.h2.Driver} + + jpa: + hibernate: + ddl-auto: update + show-sql: true + open-in-view: false + properties: + hibernate.dialect: ${DB_DIALECT:org.hibernate.dialect.H2Dialect} + + h2: + console: + enabled: true + path: /h2-console + + task.scheduling.pool.size: 8 + +server: + port: 8200 + tomcat: + relaxed-query-chars: + - '[' + - ']' diff --git a/arthas-jfr-backend/src/main/resources/static/assets/index-Bm0UJnew.js b/arthas-jfr-backend/src/main/resources/static/assets/index-Bm0UJnew.js new file mode 100644 index 0000000000..5873d5fd7a --- /dev/null +++ b/arthas-jfr-backend/src/main/resources/static/assets/index-Bm0UJnew.js @@ -0,0 +1,463 @@ +function X1(e,t){for(var n=0;nr[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(o){if(o.ep)return;o.ep=!0;const a=n(o);fetch(o.href,a)}})();function nf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Y1={exports:{}},Mt={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Sc=Symbol.for("react.element"),FI=Symbol.for("react.portal"),HI=Symbol.for("react.fragment"),VI=Symbol.for("react.strict_mode"),WI=Symbol.for("react.profiler"),KI=Symbol.for("react.provider"),UI=Symbol.for("react.context"),GI=Symbol.for("react.forward_ref"),qI=Symbol.for("react.suspense"),XI=Symbol.for("react.memo"),YI=Symbol.for("react.lazy"),Ky=Symbol.iterator;function QI(e){return e===null||typeof e!="object"?null:(e=Ky&&e[Ky]||e["@@iterator"],typeof e=="function"?e:null)}var Q1={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},J1=Object.assign,Z1={};function Il(e,t,n){this.props=e,this.context=t,this.refs=Z1,this.updater=n||Q1}Il.prototype.isReactComponent={};Il.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Il.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ew(){}ew.prototype=Il.prototype;function Rh(e,t,n){this.props=e,this.context=t,this.refs=Z1,this.updater=n||Q1}var Ph=Rh.prototype=new ew;Ph.constructor=Rh;J1(Ph,Il.prototype);Ph.isPureReactComponent=!0;var Uy=Array.isArray,tw=Object.prototype.hasOwnProperty,Ih={current:null},nw={key:!0,ref:!0,__self:!0,__source:!0};function rw(e,t,n){var r,o={},a=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(a=""+t.key),t)tw.call(t,r)&&!nw.hasOwnProperty(r)&&(o[r]=t[r]);var l=arguments.length-2;if(l===1)o.children=n;else if(1>>1,H=j[W];if(0>>1;Wo(K,F))Yo(re,K)?(j[W]=re,j[Y]=F,W=Y):(j[W]=K,j[V]=F,W=V);else if(Yo(re,F))j[W]=re,j[Y]=F,W=Y;else break e}}return L}function o(j,L){var F=j.sortIndex-L.sortIndex;return F!==0?F:j.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],u=[],d=1,f=null,m=3,v=!1,p=!1,b=!1,h=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(j){for(var L=n(u);L!==null;){if(L.callback===null)r(u);else if(L.startTime<=j)r(u),L.sortIndex=L.expirationTime,t(c,L);else break;L=n(u)}}function x(j){if(b=!1,C(j),!p)if(n(c)!==null)p=!0,_(S);else{var L=n(u);L!==null&&z(x,L.startTime-j)}}function S(j,L){p=!1,b&&(b=!1,g(O),O=-1),v=!0;var F=m;try{for(C(L),f=n(c);f!==null&&(!(f.expirationTime>L)||j&&!I());){var W=f.callback;if(typeof W=="function"){f.callback=null,m=f.priorityLevel;var H=W(f.expirationTime<=L);L=e.unstable_now(),typeof H=="function"?f.callback=H:f===n(c)&&r(c),C(L)}else r(c);f=n(c)}if(f!==null)var A=!0;else{var V=n(u);V!==null&&z(x,V.startTime-L),A=!1}return A}finally{f=null,m=F,v=!1}}var w=!1,E=null,O=-1,$=5,R=-1;function I(){return!(e.unstable_now()-R<$)}function N(){if(E!==null){var j=e.unstable_now();R=j;var L=!0;try{L=E(!0,j)}finally{L?T():(w=!1,E=null)}}else w=!1}var T;if(typeof y=="function")T=function(){y(N)};else if(typeof MessageChannel<"u"){var P=new MessageChannel,M=P.port2;P.port1.onmessage=N,T=function(){M.postMessage(null)}}else T=function(){h(N,0)};function _(j){E=j,w||(w=!0,T())}function z(j,L){O=h(function(){j(e.unstable_now())},L)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(j){j.callback=null},e.unstable_continueExecution=function(){p||v||(p=!0,_(S))},e.unstable_forceFrameRate=function(j){0>j||125W?(j.sortIndex=F,t(u,j),n(c)===null&&j===n(u)&&(b?(g(O),O=-1):b=!0,z(x,F-W))):(j.sortIndex=H,t(c,j),p||v||(p=!0,_(S))),j},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(j){var L=m;return function(){var F=m;m=L;try{return j.apply(this,arguments)}finally{m=F}}}})(lw);iw.exports=lw;var nN=iw.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var rN=s,Lr=nN;function _e(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ap=Object.prototype.hasOwnProperty,oN=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,qy={},Xy={};function aN(e){return ap.call(Xy,e)?!0:ap.call(qy,e)?!1:oN.test(e)?Xy[e]=!0:(qy[e]=!0,!1)}function iN(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function lN(e,t,n,r){if(t===null||typeof t>"u"||iN(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function fr(e,t,n,r,o,a,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var Vn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Vn[e]=new fr(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Vn[t]=new fr(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Vn[e]=new fr(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Vn[e]=new fr(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Vn[e]=new fr(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Vn[e]=new fr(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Vn[e]=new fr(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Vn[e]=new fr(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Vn[e]=new fr(e,5,!1,e.toLowerCase(),null,!1,!1)});var Th=/[\-:]([a-z])/g;function Mh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Th,Mh);Vn[t]=new fr(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Th,Mh);Vn[t]=new fr(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Th,Mh);Vn[t]=new fr(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Vn[e]=new fr(e,1,!1,e.toLowerCase(),null,!1,!1)});Vn.xlinkHref=new fr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Vn[e]=new fr(e,1,!1,e.toLowerCase(),null,!0,!0)});function _h(e,t,n,r){var o=Vn.hasOwnProperty(t)?Vn[t]:null;(o!==null?o.type!==0:r||!(2l||o[i]!==a[l]){var c=` +`+o[i].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=i&&0<=l);break}}}finally{Nm=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ss(e):""}function sN(e){switch(e.tag){case 5:return ss(e.type);case 16:return ss("Lazy");case 13:return ss("Suspense");case 19:return ss("SuspenseList");case 0:case 2:case 15:return e=Tm(e.type,!1),e;case 11:return e=Tm(e.type.render,!1),e;case 1:return e=Tm(e.type,!0),e;default:return""}}function cp(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ai:return"Fragment";case ki:return"Portal";case ip:return"Profiler";case zh:return"StrictMode";case lp:return"Suspense";case sp:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case uw:return(e.displayName||"Context")+".Consumer";case cw:return(e._context.displayName||"Context")+".Provider";case jh:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Lh:return t=e.displayName||null,t!==null?t:cp(e.type)||"Memo";case da:t=e._payload,e=e._init;try{return cp(e(t))}catch{}}return null}function cN(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return cp(t);case 8:return t===zh?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ta(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function fw(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function uN(e){var t=fw(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,a.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function tu(e){e._valueTracker||(e._valueTracker=uN(e))}function mw(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=fw(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ld(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function up(e,t){var n=t.checked;return fn({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Qy(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Ta(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function vw(e,t){t=t.checked,t!=null&&_h(e,"checked",t,!1)}function dp(e,t){vw(e,t);var n=Ta(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?fp(e,t.type,n):t.hasOwnProperty("defaultValue")&&fp(e,t.type,Ta(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Jy(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function fp(e,t,n){(t!=="number"||ld(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var cs=Array.isArray;function el(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=nu.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function zs(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ys={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},dN=["Webkit","ms","Moz","O"];Object.keys(ys).forEach(function(e){dN.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ys[t]=ys[e]})});function yw(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||ys.hasOwnProperty(e)&&ys[e]?(""+t).trim():t+"px"}function bw(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=yw(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var fN=fn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function pp(e,t){if(t){if(fN[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(_e(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(_e(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(_e(61))}if(t.style!=null&&typeof t.style!="object")throw Error(_e(62))}}function gp(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var hp=null;function Dh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yp=null,tl=null,nl=null;function tb(e){if(e=Ec(e)){if(typeof yp!="function")throw Error(_e(280));var t=e.stateNode;t&&(t=sf(t),yp(e.stateNode,e.type,t))}}function Cw(e){tl?nl?nl.push(e):nl=[e]:tl=e}function Sw(){if(tl){var e=tl,t=nl;if(nl=tl=null,tb(e),t)for(e=0;e>>=0,e===0?32:31-(wN(e)/$N|0)|0}var ru=64,ou=4194304;function us(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function dd(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=n&268435455;if(i!==0){var l=i&~o;l!==0?r=us(l):(a&=i,a!==0&&(r=us(a)))}else i=n&~o,i!==0?r=us(i):a!==0&&(r=us(a));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,a=t&-t,o>=a||o===16&&(a&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function wc(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-mo(t),e[t]=n}function PN(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Cs),ub=" ",db=!1;function Fw(e,t){switch(e){case"keyup":return nT.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hw(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Fi=!1;function oT(e,t){switch(e){case"compositionend":return Hw(t);case"keypress":return t.which!==32?null:(db=!0,ub);case"textInput":return e=t.data,e===ub&&db?null:e;default:return null}}function aT(e,t){if(Fi)return e==="compositionend"||!Kh&&Fw(e,t)?(e=kw(),ju=Hh=ga=null,Fi=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=pb(n)}}function Uw(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Uw(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Gw(){for(var e=window,t=ld();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ld(e.document)}return t}function Uh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function vT(e){var t=Gw(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Uw(n.ownerDocument.documentElement,n)){if(r!==null&&Uh(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=r.end===void 0?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=gb(n,a);var i=gb(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Hi=null,$p=null,xs=null,Ep=!1;function hb(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ep||Hi==null||Hi!==ld(r)||(r=Hi,"selectionStart"in r&&Uh(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),xs&&As(xs,r)||(xs=r,r=vd($p,"onSelect"),0Ki||(e.current=Tp[Ki],Tp[Ki]=null,Ki--)}function en(e,t){Ki++,Tp[Ki]=e.current,e.current=t}var Ma={},er=Ha(Ma),Sr=Ha(!1),ci=Ma;function ml(e,t){var n=e.type.contextTypes;if(!n)return Ma;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},a;for(a in n)o[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function xr(e){return e=e.childContextTypes,e!=null}function gd(){nn(Sr),nn(er)}function $b(e,t,n){if(er.current!==Ma)throw Error(_e(168));en(er,t),en(Sr,n)}function n$(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(_e(108,cN(e)||"Unknown",o));return fn({},n,r)}function hd(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ma,ci=er.current,en(er,e),en(Sr,Sr.current),!0}function Eb(e,t,n){var r=e.stateNode;if(!r)throw Error(_e(169));n?(e=n$(e,t,ci),r.__reactInternalMemoizedMergedChildContext=e,nn(Sr),nn(er),en(er,e)):nn(Sr),en(Sr,n)}var Wo=null,cf=!1,Km=!1;function r$(e){Wo===null?Wo=[e]:Wo.push(e)}function OT(e){cf=!0,r$(e)}function Va(){if(!Km&&Wo!==null){Km=!0;var e=0,t=Gt;try{var n=Wo;for(Gt=1;e>=i,o-=i,Uo=1<<32-mo(t)+o|n<O?($=E,E=null):$=E.sibling;var R=m(g,E,C[O],x);if(R===null){E===null&&(E=$);break}e&&E&&R.alternate===null&&t(g,E),y=a(R,y,O),w===null?S=R:w.sibling=R,w=R,E=$}if(O===C.length)return n(g,E),sn&&qa(g,O),S;if(E===null){for(;OO?($=E,E=null):$=E.sibling;var I=m(g,E,R.value,x);if(I===null){E===null&&(E=$);break}e&&E&&I.alternate===null&&t(g,E),y=a(I,y,O),w===null?S=I:w.sibling=I,w=I,E=$}if(R.done)return n(g,E),sn&&qa(g,O),S;if(E===null){for(;!R.done;O++,R=C.next())R=f(g,R.value,x),R!==null&&(y=a(R,y,O),w===null?S=R:w.sibling=R,w=R);return sn&&qa(g,O),S}for(E=r(g,E);!R.done;O++,R=C.next())R=v(E,g,O,R.value,x),R!==null&&(e&&R.alternate!==null&&E.delete(R.key===null?O:R.key),y=a(R,y,O),w===null?S=R:w.sibling=R,w=R);return e&&E.forEach(function(N){return t(g,N)}),sn&&qa(g,O),S}function h(g,y,C,x){if(typeof C=="object"&&C!==null&&C.type===Ai&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case eu:e:{for(var S=C.key,w=y;w!==null;){if(w.key===S){if(S=C.type,S===Ai){if(w.tag===7){n(g,w.sibling),y=o(w,C.props.children),y.return=g,g=y;break e}}else if(w.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===da&&Pb(S)===w.type){n(g,w.sibling),y=o(w,C.props),y.ref=Yl(g,w,C),y.return=g,g=y;break e}n(g,w);break}else t(g,w);w=w.sibling}C.type===Ai?(y=ai(C.props.children,g.mode,x,C.key),y.return=g,g=y):(x=Vu(C.type,C.key,C.props,null,g.mode,x),x.ref=Yl(g,y,C),x.return=g,g=x)}return i(g);case ki:e:{for(w=C.key;y!==null;){if(y.key===w)if(y.tag===4&&y.stateNode.containerInfo===C.containerInfo&&y.stateNode.implementation===C.implementation){n(g,y.sibling),y=o(y,C.children||[]),y.return=g,g=y;break e}else{n(g,y);break}else t(g,y);y=y.sibling}y=Zm(C,g.mode,x),y.return=g,g=y}return i(g);case da:return w=C._init,h(g,y,w(C._payload),x)}if(cs(C))return p(g,y,C,x);if(Kl(C))return b(g,y,C,x);du(g,C)}return typeof C=="string"&&C!==""||typeof C=="number"?(C=""+C,y!==null&&y.tag===6?(n(g,y.sibling),y=o(y,C),y.return=g,g=y):(n(g,y),y=Jm(C,g.mode,x),y.return=g,g=y),i(g)):n(g,y)}return h}var pl=l$(!0),s$=l$(!1),Cd=Ha(null),Sd=null,qi=null,Yh=null;function Qh(){Yh=qi=Sd=null}function Jh(e){var t=Cd.current;nn(Cd),e._currentValue=t}function zp(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ol(e,t){Sd=e,Yh=qi=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Cr=!0),e.firstContext=null)}function qr(e){var t=e._currentValue;if(Yh!==e)if(e={context:e,memoizedValue:t,next:null},qi===null){if(Sd===null)throw Error(_e(308));qi=e,Sd.dependencies={lanes:0,firstContext:e}}else qi=qi.next=e;return t}var Ja=null;function Zh(e){Ja===null?Ja=[e]:Ja.push(e)}function c$(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,Zh(t)):(n.next=o.next,o.next=n),t.interleaved=n,Jo(e,r)}function Jo(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var fa=!1;function e0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function u$(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Oa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Ft&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Jo(e,n)}return o=r.interleaved,o===null?(t.next=t,Zh(r)):(t.next=o.next,o.next=t),r.interleaved=t,Jo(e,n)}function Du(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,kh(e,n)}}function Ib(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?o=a=i:a=a.next=i,n=n.next}while(n!==null);a===null?o=a=t:a=a.next=t}else o=a=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function xd(e,t,n,r){var o=e.updateQueue;fa=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(l!==null){o.shared.pending=null;var c=l,u=c.next;c.next=null,i===null?a=u:i.next=u,i=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==i&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(a!==null){var f=o.baseState;i=0,d=u=c=null,l=a;do{var m=l.lane,v=l.eventTime;if((r&m)===m){d!==null&&(d=d.next={eventTime:v,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var p=e,b=l;switch(m=t,v=n,b.tag){case 1:if(p=b.payload,typeof p=="function"){f=p.call(v,f,m);break e}f=p;break e;case 3:p.flags=p.flags&-65537|128;case 0:if(p=b.payload,m=typeof p=="function"?p.call(v,f,m):p,m==null)break e;f=fn({},f,m);break e;case 2:fa=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,m=o.effects,m===null?o.effects=[l]:m.push(l))}else v={eventTime:v,lane:m,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=v,c=f):d=d.next=v,i|=m;if(l=l.next,l===null){if(l=o.shared.pending,l===null)break;m=l,l=m.next,m.next=null,o.lastBaseUpdate=m,o.shared.pending=null}}while(!0);if(d===null&&(c=f),o.baseState=c,o.firstBaseUpdate=u,o.lastBaseUpdate=d,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else a===null&&(o.shared.lanes=0);fi|=i,e.lanes=i,e.memoizedState=f}}function Nb(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Gm.transition;Gm.transition={};try{e(!1),t()}finally{Gt=n,Gm.transition=r}}function R$(){return Xr().memoizedState}function NT(e,t,n){var r=Pa(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},P$(e))I$(t,n);else if(n=c$(e,t,n,r),n!==null){var o=sr();vo(n,e,r,o),N$(n,t,r)}}function TT(e,t,n){var r=Pa(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(P$(e))I$(t,o);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var i=t.lastRenderedState,l=a(i,n);if(o.hasEagerState=!0,o.eagerState=l,ho(l,i)){var c=t.interleaved;c===null?(o.next=o,Zh(t)):(o.next=c.next,c.next=o),t.interleaved=o;return}}catch{}finally{}n=c$(e,t,o,r),n!==null&&(o=sr(),vo(n,e,r,o),N$(n,t,r))}}function P$(e){var t=e.alternate;return e===dn||t!==null&&t===dn}function I$(e,t){ws=$d=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function N$(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,kh(e,n)}}var Ed={readContext:qr,useCallback:qn,useContext:qn,useEffect:qn,useImperativeHandle:qn,useInsertionEffect:qn,useLayoutEffect:qn,useMemo:qn,useReducer:qn,useRef:qn,useState:qn,useDebugValue:qn,useDeferredValue:qn,useTransition:qn,useMutableSource:qn,useSyncExternalStore:qn,useId:qn,unstable_isNewReconciler:!1},MT={readContext:qr,useCallback:function(e,t){return No().memoizedState=[e,t===void 0?null:t],e},useContext:qr,useEffect:Mb,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ku(4194308,4,x$.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ku(4194308,4,e,t)},useInsertionEffect:function(e,t){return ku(4,2,e,t)},useMemo:function(e,t){var n=No();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=No();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=NT.bind(null,dn,e),[r.memoizedState,e]},useRef:function(e){var t=No();return e={current:e},t.memoizedState=e},useState:Tb,useDebugValue:s0,useDeferredValue:function(e){return No().memoizedState=e},useTransition:function(){var e=Tb(!1),t=e[0];return e=IT.bind(null,e[1]),No().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=dn,o=No();if(sn){if(n===void 0)throw Error(_e(407));n=n()}else{if(n=t(),Dn===null)throw Error(_e(349));di&30||v$(r,t,n)}o.memoizedState=n;var a={value:n,getSnapshot:t};return o.queue=a,Mb(g$.bind(null,r,a,e),[e]),r.flags|=2048,qs(9,p$.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=No(),t=Dn.identifierPrefix;if(sn){var n=Go,r=Uo;n=(r&~(1<<32-mo(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Us++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Mo]=t,e[Vs]=r,A$(e,t,!1,!1),t.stateNode=e;e:{switch(i=gp(n,r),n){case"dialog":tn("cancel",e),tn("close",e),o=r;break;case"iframe":case"object":case"embed":tn("load",e),o=r;break;case"video":case"audio":for(o=0;oyl&&(t.flags|=128,r=!0,Ql(a,!1),t.lanes=4194304)}else{if(!r)if(e=wd(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ql(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!sn)return Xn(t),null}else 2*Cn()-a.renderingStartTime>yl&&n!==1073741824&&(t.flags|=128,r=!0,Ql(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(n=a.last,n!==null?n.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Cn(),t.sibling=null,n=un.current,en(un,r?n&1|2:n&1),t):(Xn(t),null);case 22:case 23:return v0(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Tr&1073741824&&(Xn(t),t.subtreeFlags&6&&(t.flags|=8192)):Xn(t),null;case 24:return null;case 25:return null}throw Error(_e(156,t.tag))}function AT(e,t){switch(qh(t),t.tag){case 1:return xr(t.type)&&gd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return gl(),nn(Sr),nn(er),r0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return n0(t),null;case 13:if(nn(un),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(_e(340));vl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return nn(un),null;case 4:return gl(),null;case 10:return Jh(t.type._context),null;case 22:case 23:return v0(),null;case 24:return null;default:return null}}var mu=!1,Jn=!1,FT=typeof WeakSet=="function"?WeakSet:Set,it=null;function Xi(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){hn(e,t,r)}else n.current=null}function Vp(e,t,n){try{n()}catch(r){hn(e,t,r)}}var Vb=!1;function HT(e,t){if(Op=fd,e=Gw(),Uh(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var i=0,l=-1,c=-1,u=0,d=0,f=e,m=null;t:for(;;){for(var v;f!==n||o!==0&&f.nodeType!==3||(l=i+o),f!==a||r!==0&&f.nodeType!==3||(c=i+r),f.nodeType===3&&(i+=f.nodeValue.length),(v=f.firstChild)!==null;)m=f,f=v;for(;;){if(f===e)break t;if(m===n&&++u===o&&(l=i),m===a&&++d===r&&(c=i),(v=f.nextSibling)!==null)break;f=m,m=f.parentNode}f=v}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Rp={focusedElem:e,selectionRange:n},fd=!1,it=t;it!==null;)if(t=it,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,it=e;else for(;it!==null;){t=it;try{var p=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var b=p.memoizedProps,h=p.memoizedState,g=t.stateNode,y=g.getSnapshotBeforeUpdate(t.elementType===t.type?b:lo(t.type,b),h);g.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var C=t.stateNode.containerInfo;C.nodeType===1?C.textContent="":C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(_e(163))}}catch(x){hn(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,it=e;break}it=t.return}return p=Vb,Vb=!1,p}function $s(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,a!==void 0&&Vp(t,n,a)}o=o.next}while(o!==r)}}function ff(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Wp(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function V$(e){var t=e.alternate;t!==null&&(e.alternate=null,V$(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Mo],delete t[Vs],delete t[Np],delete t[$T],delete t[ET])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function W$(e){return e.tag===5||e.tag===3||e.tag===4}function Wb(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||W$(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Kp(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=pd));else if(r!==4&&(e=e.child,e!==null))for(Kp(e,t,n),e=e.sibling;e!==null;)Kp(e,t,n),e=e.sibling}function Up(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Up(e,t,n),e=e.sibling;e!==null;)Up(e,t,n),e=e.sibling}var Fn=null,so=!1;function aa(e,t,n){for(n=n.child;n!==null;)K$(e,t,n),n=n.sibling}function K$(e,t,n){if(_o&&typeof _o.onCommitFiberUnmount=="function")try{_o.onCommitFiberUnmount(rf,n)}catch{}switch(n.tag){case 5:Jn||Xi(n,t);case 6:var r=Fn,o=so;Fn=null,aa(e,t,n),Fn=r,so=o,Fn!==null&&(so?(e=Fn,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Fn.removeChild(n.stateNode));break;case 18:Fn!==null&&(so?(e=Fn,n=n.stateNode,e.nodeType===8?Wm(e.parentNode,n):e.nodeType===1&&Wm(e,n),Bs(e)):Wm(Fn,n.stateNode));break;case 4:r=Fn,o=so,Fn=n.stateNode.containerInfo,so=!0,aa(e,t,n),Fn=r,so=o;break;case 0:case 11:case 14:case 15:if(!Jn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,i!==void 0&&(a&2||a&4)&&Vp(n,t,i),o=o.next}while(o!==r)}aa(e,t,n);break;case 1:if(!Jn&&(Xi(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){hn(n,t,l)}aa(e,t,n);break;case 21:aa(e,t,n);break;case 22:n.mode&1?(Jn=(r=Jn)||n.memoizedState!==null,aa(e,t,n),Jn=r):aa(e,t,n);break;default:aa(e,t,n)}}function Kb(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new FT),t.forEach(function(r){var o=QT.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function io(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~a}if(r=o,r=Cn()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*WT(r/1960))-r,10e?16:e,ha===null)var r=!1;else{if(e=ha,ha=null,Pd=0,Ft&6)throw Error(_e(331));var o=Ft;for(Ft|=4,it=e.current;it!==null;){var a=it,i=a.child;if(it.flags&16){var l=a.deletions;if(l!==null){for(var c=0;cCn()-f0?oi(e,0):d0|=n),wr(e,t)}function Z$(e,t){t===0&&(e.mode&1?(t=ou,ou<<=1,!(ou&130023424)&&(ou=4194304)):t=1);var n=sr();e=Jo(e,t),e!==null&&(wc(e,t,n),wr(e,n))}function YT(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Z$(e,n)}function QT(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(_e(314))}r!==null&&r.delete(t),Z$(e,n)}var eE;eE=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Sr.current)Cr=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Cr=!1,BT(e,t,n);Cr=!!(e.flags&131072)}else Cr=!1,sn&&t.flags&1048576&&o$(t,bd,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Au(e,t),e=t.pendingProps;var o=ml(t,er.current);ol(t,n),o=a0(null,t,r,e,o,n);var a=i0();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,xr(r)?(a=!0,hd(t)):a=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,e0(t),o.updater=df,t.stateNode=o,o._reactInternals=t,Lp(t,r,e,n),t=kp(null,t,r,!0,a,n)):(t.tag=0,sn&&a&&Gh(t),ir(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Au(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=ZT(r),e=lo(r,e),o){case 0:t=Bp(null,t,r,e,n);break e;case 1:t=Ab(null,t,r,e,n);break e;case 11:t=Bb(null,t,r,e,n);break e;case 14:t=kb(null,t,r,lo(r.type,e),n);break e}throw Error(_e(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:lo(r,o),Bp(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:lo(r,o),Ab(e,t,r,o,n);case 3:e:{if(D$(t),e===null)throw Error(_e(387));r=t.pendingProps,a=t.memoizedState,o=a.element,u$(e,t),xd(t,r,null,n);var i=t.memoizedState;if(r=i.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){o=hl(Error(_e(423)),t),t=Fb(e,t,r,n,o);break e}else if(r!==o){o=hl(Error(_e(424)),t),t=Fb(e,t,r,n,o);break e}else for(Mr=Ea(t.stateNode.containerInfo.firstChild),jr=t,sn=!0,fo=null,n=s$(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(vl(),r===o){t=Zo(e,t,n);break e}ir(e,t,r,n)}t=t.child}return t;case 5:return d$(t),e===null&&_p(t),r=t.type,o=t.pendingProps,a=e!==null?e.memoizedProps:null,i=o.children,Pp(r,o)?i=null:a!==null&&Pp(r,a)&&(t.flags|=32),L$(e,t),ir(e,t,i,n),t.child;case 6:return e===null&&_p(t),null;case 13:return B$(e,t,n);case 4:return t0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=pl(t,null,r,n):ir(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:lo(r,o),Bb(e,t,r,o,n);case 7:return ir(e,t,t.pendingProps,n),t.child;case 8:return ir(e,t,t.pendingProps.children,n),t.child;case 12:return ir(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,a=t.memoizedProps,i=o.value,en(Cd,r._currentValue),r._currentValue=i,a!==null)if(ho(a.value,i)){if(a.children===o.children&&!Sr.current){t=Zo(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var l=a.dependencies;if(l!==null){i=a.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(a.tag===1){c=qo(-1,n&-n),c.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}a.lanes|=n,c=a.alternate,c!==null&&(c.lanes|=n),zp(a.return,n,t),l.lanes|=n;break}c=c.next}}else if(a.tag===10)i=a.type===t.type?null:a.child;else if(a.tag===18){if(i=a.return,i===null)throw Error(_e(341));i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),zp(i,n,t),i=a.sibling}else i=a.child;if(i!==null)i.return=a;else for(i=a;i!==null;){if(i===t){i=null;break}if(a=i.sibling,a!==null){a.return=i.return,i=a;break}i=i.return}a=i}ir(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,ol(t,n),o=qr(o),r=r(o),t.flags|=1,ir(e,t,r,n),t.child;case 14:return r=t.type,o=lo(r,t.pendingProps),o=lo(r.type,o),kb(e,t,r,o,n);case 15:return z$(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:lo(r,o),Au(e,t),t.tag=1,xr(r)?(e=!0,hd(t)):e=!1,ol(t,n),T$(t,r,o),Lp(t,r,o,n),kp(null,t,r,!0,e,n);case 19:return k$(e,t,n);case 22:return j$(e,t,n)}throw Error(_e(156,t.tag))};function tE(e,t){return Pw(e,t)}function JT(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ur(e,t,n,r){return new JT(e,t,n,r)}function g0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ZT(e){if(typeof e=="function")return g0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===jh)return 11;if(e===Lh)return 14}return 2}function Ia(e,t){var n=e.alternate;return n===null?(n=Ur(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vu(e,t,n,r,o,a){var i=2;if(r=e,typeof e=="function")g0(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Ai:return ai(n.children,o,a,t);case zh:i=8,o|=8;break;case ip:return e=Ur(12,n,t,o|2),e.elementType=ip,e.lanes=a,e;case lp:return e=Ur(13,n,t,o),e.elementType=lp,e.lanes=a,e;case sp:return e=Ur(19,n,t,o),e.elementType=sp,e.lanes=a,e;case dw:return vf(n,o,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case cw:i=10;break e;case uw:i=9;break e;case jh:i=11;break e;case Lh:i=14;break e;case da:i=16,r=null;break e}throw Error(_e(130,e==null?e:typeof e,""))}return t=Ur(i,n,t,o),t.elementType=e,t.type=r,t.lanes=a,t}function ai(e,t,n,r){return e=Ur(7,e,r,t),e.lanes=n,e}function vf(e,t,n,r){return e=Ur(22,e,r,t),e.elementType=dw,e.lanes=n,e.stateNode={isHidden:!1},e}function Jm(e,t,n){return e=Ur(6,e,null,t),e.lanes=n,e}function Zm(e,t,n){return t=Ur(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function eM(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=_m(0),this.expirationTimes=_m(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=_m(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function h0(e,t,n,r,o,a,i,l,c){return e=new eM(e,t,n,l,c),t===1?(t=1,a===!0&&(t|=8)):t=0,a=Ur(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},e0(a),e}function tM(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(aE)}catch(e){console.error(e)}}aE(),aw.exports=Dr;var Yr=aw.exports;const Ys=nf(Yr),iM=X1({__proto__:null,default:Ys},[Yr]);var Zb=Yr;op.createRoot=Zb.createRoot,op.hydrateRoot=Zb.hydrateRoot;/** + * @remix-run/router v1.23.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Qs(){return Qs=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function iE(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function sM(){return Math.random().toString(36).substr(2,8)}function tC(e,t){return{usr:e.state,key:e.key,idx:t}}function Qp(e,t,n,r){return n===void 0&&(n=null),Qs({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ml(t):t,{state:n,key:t&&t.key||r||sM()})}function lE(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ml(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function cM(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:a=!1}=r,i=o.history,l=ya.Pop,c=null,u=d();u==null&&(u=0,i.replaceState(Qs({},i.state,{idx:u}),""));function d(){return(i.state||{idx:null}).idx}function f(){l=ya.Pop;let h=d(),g=h==null?null:h-u;u=h,c&&c({action:l,location:b.location,delta:g})}function m(h,g){l=ya.Push;let y=Qp(b.location,h,g);u=d()+1;let C=tC(y,u),x=b.createHref(y);try{i.pushState(C,"",x)}catch(S){if(S instanceof DOMException&&S.name==="DataCloneError")throw S;o.location.assign(x)}a&&c&&c({action:l,location:b.location,delta:1})}function v(h,g){l=ya.Replace;let y=Qp(b.location,h,g);u=d();let C=tC(y,u),x=b.createHref(y);i.replaceState(C,"",x),a&&c&&c({action:l,location:b.location,delta:0})}function p(h){let g=o.location.origin!=="null"?o.location.origin:o.location.href,y=typeof h=="string"?h:lE(h);return y=y.replace(/ $/,"%20"),Rn(g,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,g)}let b={get action(){return l},get location(){return e(o,i)},listen(h){if(c)throw new Error("A history only accepts one active listener");return o.addEventListener(eC,f),c=h,()=>{o.removeEventListener(eC,f),c=null}},createHref(h){return t(o,h)},createURL:p,encodeLocation(h){let g=p(h);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:m,replace:v,go(h){return i.go(h)}};return b}var nC;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(nC||(nC={}));function uM(e,t,n){return n===void 0&&(n="/"),dM(e,t,n)}function dM(e,t,n,r){let o=typeof t=="string"?Ml(t):t,a=uE(o.pathname||"/",n);if(a==null)return null;let i=sE(e);fM(i);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?a.path||"":l,caseSensitive:a.caseSensitive===!0,childrenIndex:i,route:a};c.relativePath.startsWith("/")&&(Rn(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=ii([r,c.relativePath]),d=n.concat(c);a.children&&a.children.length>0&&(Rn(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),sE(a.children,t,d,u)),!(a.path==null&&!a.index)&&t.push({path:u,score:bM(u,a.index),routesMeta:d})};return e.forEach((a,i)=>{var l;if(a.path===""||!((l=a.path)!=null&&l.includes("?")))o(a,i);else for(let c of cE(a.path))o(a,i,c)}),t}function cE(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),a=n.replace(/\?$/,"");if(r.length===0)return o?[a,""]:[a];let i=cE(r.join("/")),l=[];return l.push(...i.map(c=>c===""?a:[a,c].join("/"))),o&&l.push(...i),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function fM(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:CM(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const mM=/^:[\w-]+$/,vM=3,pM=2,gM=1,hM=10,yM=-2,rC=e=>e==="*";function bM(e,t){let n=e.split("/"),r=n.length;return n.some(rC)&&(r+=yM),t&&(r+=pM),n.filter(o=>!rC(o)).reduce((o,a)=>o+(mM.test(a)?vM:a===""?gM:hM),r)}function CM(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function SM(e,t,n){let{routesMeta:r}=e,o={},a="/",i=[];for(let l=0;l{let{paramName:m,isOptional:v}=d;if(m==="*"){let b=l[f]||"";i=a.slice(0,a.length-b.length).replace(/(.)\/+$/,"$1")}const p=l[f];return v&&!p?u[m]=void 0:u[m]=(p||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:i,pattern:e}}function wM(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),iE(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function $M(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return iE(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function uE(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function EM(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?Ml(e):e;return{pathname:n?n.startsWith("/")?n:OM(n,t):t,search:IM(r),hash:NM(o)}}function OM(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function ev(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function RM(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function dE(e,t){let n=RM(e);return t?n.map((r,o)=>o===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function fE(e,t,n,r){r===void 0&&(r=!1);let o;typeof e=="string"?o=Ml(e):(o=Qs({},e),Rn(!o.pathname||!o.pathname.includes("?"),ev("?","pathname","search",o)),Rn(!o.pathname||!o.pathname.includes("#"),ev("#","pathname","hash",o)),Rn(!o.search||!o.search.includes("#"),ev("#","search","hash",o)));let a=e===""||o.pathname==="",i=a?"/":o.pathname,l;if(i==null)l=n;else{let f=t.length-1;if(!r&&i.startsWith("..")){let m=i.split("/");for(;m[0]==="..";)m.shift(),f-=1;o.pathname=m.join("/")}l=f>=0?t[f]:"/"}let c=EM(o,l),u=i&&i!=="/"&&i.endsWith("/"),d=(a||i===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const ii=e=>e.join("/").replace(/\/\/+/g,"/"),PM=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),IM=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,NM=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function TM(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const mE=["post","put","patch","delete"];new Set(mE);const MM=["get",...mE];new Set(MM);/** + * React Router v6.30.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Js(){return Js=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),s.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let f=fE(u,JSON.parse(i),a,d.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:ii([t,f.pathname])),(d.replace?r.replace:r.push)(f,d.state,d)},[t,r,i,a,e])}function jM(){let{matches:e}=s.useContext(Wa),t=e[e.length-1];return t?t.params:{}}function LM(e,t){return DM(e,t)}function DM(e,t,n,r){Pc()||Rn(!1);let{navigator:o}=s.useContext(Rc),{matches:a}=s.useContext(Wa),i=a[a.length-1],l=i?i.params:{};i&&i.pathname;let c=i?i.pathnameBase:"/";i&&i.route;let u=Cf(),d;if(t){var f;let h=typeof t=="string"?Ml(t):t;c==="/"||(f=h.pathname)!=null&&f.startsWith(c)||Rn(!1),d=h}else d=u;let m=d.pathname||"/",v=m;if(c!=="/"){let h=c.replace(/^\//,"").split("/");v="/"+m.replace(/^\//,"").split("/").slice(h.length).join("/")}let p=uM(e,{pathname:v}),b=HM(p&&p.map(h=>Object.assign({},h,{params:Object.assign({},l,h.params),pathname:ii([c,o.encodeLocation?o.encodeLocation(h.pathname).pathname:h.pathname]),pathnameBase:h.pathnameBase==="/"?c:ii([c,o.encodeLocation?o.encodeLocation(h.pathnameBase).pathname:h.pathnameBase])})),a,n,r);return t&&b?s.createElement(bf.Provider,{value:{location:Js({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:ya.Pop}},b):b}function BM(){let e=UM(),t=TM(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return s.createElement(s.Fragment,null,s.createElement("h2",null,"Unexpected Application Error!"),s.createElement("h3",{style:{fontStyle:"italic"}},t),n?s.createElement("pre",{style:o},n):null,null)}const kM=s.createElement(BM,null);class AM extends s.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?s.createElement(Wa.Provider,{value:this.props.routeContext},s.createElement(vE.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function FM(e){let{routeContext:t,match:n,children:r}=e,o=s.useContext(S0);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),s.createElement(Wa.Provider,{value:t},r)}function HM(e,t,n,r){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var a;if(!n)return null;if(n.errors)e=n.matches;else if((a=r)!=null&&a.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,l=(o=n)==null?void 0:o.errors;if(l!=null){let d=i.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);d>=0||Rn(!1),i=i.slice(0,Math.min(i.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d=0?i=i.slice(0,u+1):i=[i[0]];break}}}return i.reduceRight((d,f,m)=>{let v,p=!1,b=null,h=null;n&&(v=l&&f.route.id?l[f.route.id]:void 0,b=f.route.errorElement||kM,c&&(u<0&&m===0?(qM("route-fallback"),p=!0,h=null):u===m&&(p=!0,h=f.route.hydrateFallbackElement||null)));let g=t.concat(i.slice(0,m+1)),y=()=>{let C;return v?C=b:p?C=h:f.route.Component?C=s.createElement(f.route.Component,null):f.route.element?C=f.route.element:C=d,s.createElement(FM,{match:f,routeContext:{outlet:d,matches:g,isDataRoute:n!=null},children:C})};return n&&(f.route.ErrorBoundary||f.route.errorElement||m===0)?s.createElement(AM,{location:n.location,revalidation:n.revalidation,component:b,error:v,children:y(),routeContext:{outlet:null,matches:g,isDataRoute:!0}}):y()},null)}var hE=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(hE||{}),yE=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(yE||{});function VM(e){let t=s.useContext(S0);return t||Rn(!1),t}function WM(e){let t=s.useContext(_M);return t||Rn(!1),t}function KM(e){let t=s.useContext(Wa);return t||Rn(!1),t}function bE(e){let t=KM(),n=t.matches[t.matches.length-1];return n.route.id||Rn(!1),n.route.id}function UM(){var e;let t=s.useContext(vE),n=WM(),r=bE();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function GM(){let{router:e}=VM(hE.UseNavigateStable),t=bE(yE.UseNavigateStable),n=s.useRef(!1);return pE(()=>{n.current=!0}),s.useCallback(function(o,a){a===void 0&&(a={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,Js({fromRouteId:t},a)))},[e,t])}const oC={};function qM(e,t,n){oC[e]||(oC[e]=!0)}function XM(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function YM(e){let{to:t,replace:n,state:r,relative:o}=e;Pc()||Rn(!1);let{future:a,static:i}=s.useContext(Rc),{matches:l}=s.useContext(Wa),{pathname:c}=Cf(),u=gE(),d=fE(t,dE(l,a.v7_relativeSplatPath),c,o==="path"),f=JSON.stringify(d);return s.useEffect(()=>u(JSON.parse(f),{replace:n,state:r,relative:o}),[u,f,o,n,r]),null}function fs(e){Rn(!1)}function QM(e){let{basename:t="/",children:n=null,location:r,navigationType:o=ya.Pop,navigator:a,static:i=!1,future:l}=e;Pc()&&Rn(!1);let c=t.replace(/^\/*/,"/"),u=s.useMemo(()=>({basename:c,navigator:a,static:i,future:Js({v7_relativeSplatPath:!1},l)}),[c,l,a,i]);typeof r=="string"&&(r=Ml(r));let{pathname:d="/",search:f="",hash:m="",state:v=null,key:p="default"}=r,b=s.useMemo(()=>{let h=uE(d,c);return h==null?null:{location:{pathname:h,search:f,hash:m,state:v,key:p},navigationType:o}},[c,d,f,m,v,p,o]);return b==null?null:s.createElement(Rc.Provider,{value:u},s.createElement(bf.Provider,{children:n,value:b}))}function JM(e){let{children:t,location:n}=e;return LM(Jp(t),n)}new Promise(()=>{});function Jp(e,t){t===void 0&&(t=[]);let n=[];return s.Children.forEach(e,(r,o)=>{if(!s.isValidElement(r))return;let a=[...t,o];if(r.type===s.Fragment){n.push.apply(n,Jp(r.props.children,a));return}r.type!==fs&&Rn(!1),!r.props.index||!r.props.children||Rn(!1);let i={id:r.props.id||a.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=Jp(r.props.children,a)),n.push(i)}),n}/** + * React Router DOM v6.30.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */const ZM="6";try{window.__reactRouterVersion=ZM}catch{}const e_="startTransition",aC=xc[e_];function t_(e){let{basename:t,children:n,future:r,window:o}=e,a=s.useRef();a.current==null&&(a.current=lM({window:o,v5Compat:!0}));let i=a.current,[l,c]=s.useState({action:i.action,location:i.location}),{v7_startTransition:u}=r||{},d=s.useCallback(f=>{u&&aC?aC(()=>c(f)):c(f)},[c,u]);return s.useLayoutEffect(()=>i.listen(d),[i,d]),s.useEffect(()=>XM(r),[r]),s.createElement(QM,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:i,future:r})}var iC;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(iC||(iC={}));var lC;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(lC||(lC={}));var CE={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var a="",i=0;i1&&arguments[1]!==void 0?arguments[1]:{},n=[];return B.Children.forEach(e,function(r){r==null&&!t.keepEmpty||(Array.isArray(r)?n=n.concat(ur(r)):SE(r)&&r.props?n=n.concat(ur(r.props.children,t)):n.push(r))}),n}var Zp={},i_=function(t){};function l_(e,t){}function s_(e,t){}function c_(){Zp={}}function xE(e,t,n){!t&&!Zp[n]&&(e(!1,n),Zp[n]=!0)}function rn(e,t){xE(l_,e,t)}function u_(e,t){xE(s_,e,t)}rn.preMessage=i_;rn.resetWarned=c_;rn.noteOnce=u_;function d_(e,t){if(We(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(We(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wE(e){var t=d_(e,"string");return We(t)=="symbol"?t:t+""}function D(e,t,n){return(t=wE(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function k(e){for(var t=1;t=19)return!0;var o=tv.isMemo(t)?t.type.type:t.type;return!(typeof o=="function"&&!((n=o.prototype)!==null&&n!==void 0&&n.render)&&o.$$typeof!==tv.ForwardRef||typeof t=="function"&&!((r=t.prototype)!==null&&r!==void 0&&r.render)&&t.$$typeof!==tv.ForwardRef)};function $0(e){return s.isValidElement(e)&&!SE(e)}var p_=function(t){return $0(t)&&Lo(t)},Ci=function(t){if(t&&$0(t)){var n=t;return n.props.propertyIsEnumerable("ref")?n.props.ref:n.ref}return null},eg=s.createContext(null);function g_(e){var t=e.children,n=e.onBatchResize,r=s.useRef(0),o=s.useRef([]),a=s.useContext(eg),i=s.useCallback(function(l,c,u){r.current+=1;var d=r.current;o.current.push({size:l,element:c,data:u}),Promise.resolve().then(function(){d===r.current&&(n==null||n(o.current),o.current=[])}),a==null||a(l,c,u)},[n,a]);return s.createElement(eg.Provider,{value:i},t)}var OE=function(){if(typeof Map<"u")return Map;function e(t,n){var r=-1;return t.some(function(o,a){return o[0]===n?(r=a,!0):!1}),r}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(n){var r=e(this.__entries__,n),o=this.__entries__[r];return o&&o[1]},t.prototype.set=function(n,r){var o=e(this.__entries__,n);~o?this.__entries__[o][1]=r:this.__entries__.push([n,r])},t.prototype.delete=function(n){var r=this.__entries__,o=e(r,n);~o&&r.splice(o,1)},t.prototype.has=function(n){return!!~e(this.__entries__,n)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(n,r){r===void 0&&(r=null);for(var o=0,a=this.__entries__;o0},e.prototype.connect_=function(){!tg||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),x_?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!tg||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var n=t.propertyName,r=n===void 0?"":n,o=S_.some(function(a){return!!~r.indexOf(a)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),RE=function(e,t){for(var n=0,r=Object.keys(t);n"u"||!(Element instanceof Object))){if(!(t instanceof bl(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(t)||(n.set(t,new T_(t)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(t instanceof bl(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var n=this.observations_;n.has(t)&&(n.delete(t),n.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(n){n.isActive()&&t.activeObservations_.push(n)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,n=this.activeObservations_.map(function(r){return new M_(r.target,r.broadcastRect())});this.callback_.call(t,n,t),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),IE=typeof WeakMap<"u"?new WeakMap:new OE,NE=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=w_.getInstance(),r=new __(t,n,this);IE.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){NE.prototype[e]=function(){var t;return(t=IE.get(this))[e].apply(t,arguments)}});var z_=function(){return typeof Td.ResizeObserver<"u"?Td.ResizeObserver:NE}(),ba=new Map;function j_(e){e.forEach(function(t){var n,r=t.target;(n=ba.get(r))===null||n===void 0||n.forEach(function(o){return o(r)})})}var TE=new z_(j_);function L_(e,t){ba.has(e)||(ba.set(e,new Set),TE.observe(e)),ba.get(e).add(t)}function D_(e,t){ba.has(e)&&(ba.get(e).delete(t),ba.get(e).size||(TE.unobserve(e),ba.delete(e)))}function mn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function uC(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&arguments[1]!==void 0?arguments[1]:1;dC+=1;var r=dC;function o(a){if(a===0)jE(r),t();else{var i=_E(function(){o(a-1)});R0.set(r,i)}}return o(n),r};Lt.cancel=function(e){var t=R0.get(e);return jE(e),zE(t)};function LE(e){if(Array.isArray(e))return e}function U_(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,o,a,i,l=[],c=!0,u=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(d){u=!0,o=d}finally{try{if(!c&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw o}}return l}}function DE(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ee(e,t){return LE(e)||U_(e,t)||O0(e,t)||DE()}function rc(e){for(var t=0,n,r=0,o=e.length;o>=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}function Bn(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function rg(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}var fC="data-rc-order",mC="data-rc-priority",G_="rc-util-key",og=new Map;function BE(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.mark;return t?t.startsWith("data-")?t:"data-".concat(t):G_}function _f(e){if(e.attachTo)return e.attachTo;var t=document.querySelector("head");return t||document.body}function q_(e){return e==="queue"?"prependQueue":e?"prepend":"append"}function P0(e){return Array.from((og.get(e)||e).children).filter(function(t){return t.tagName==="STYLE"})}function kE(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Bn())return null;var n=t.csp,r=t.prepend,o=t.priority,a=o===void 0?0:o,i=q_(r),l=i==="prependQueue",c=document.createElement("style");c.setAttribute(fC,i),l&&a&&c.setAttribute(mC,"".concat(a)),n!=null&&n.nonce&&(c.nonce=n==null?void 0:n.nonce),c.innerHTML=e;var u=_f(t),d=u.firstChild;if(r){if(l){var f=(t.styles||P0(u)).filter(function(m){if(!["prepend","prependQueue"].includes(m.getAttribute(fC)))return!1;var v=Number(m.getAttribute(mC)||0);return a>=v});if(f.length)return u.insertBefore(c,f[f.length-1].nextSibling),c}u.insertBefore(c,d)}else u.appendChild(c);return c}function AE(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=_f(t);return(t.styles||P0(n)).find(function(r){return r.getAttribute(BE(t))===e})}function oc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=AE(e,t);if(n){var r=_f(t);r.removeChild(n)}}function X_(e,t){var n=og.get(e);if(!n||!rg(document,n)){var r=kE("",t),o=r.parentNode;og.set(e,o),e.removeChild(r)}}function Xo(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=_f(n),o=P0(r),a=k(k({},n),{},{styles:o});X_(r,a);var i=AE(t,a);if(i){var l,c;if((l=a.csp)!==null&&l!==void 0&&l.nonce&&i.nonce!==((c=a.csp)===null||c===void 0?void 0:c.nonce)){var u;i.nonce=(u=a.csp)===null||u===void 0?void 0:u.nonce}return i.innerHTML!==e&&(i.innerHTML=e),i}var d=kE(e,a);return d.setAttribute(BE(a),t),d}function Y_(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function ut(e,t){if(e==null)return{};var n,r,o=Y_(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r2&&arguments[2]!==void 0?arguments[2]:!1,r=new Set;function o(a,i){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,c=r.has(a);if(rn(!c,"Warning: There may be circular references"),c)return!1;if(a===i)return!0;if(n&&l>1)return!1;r.add(a);var u=l+1;if(Array.isArray(a)){if(!Array.isArray(i)||a.length!==i.length)return!1;for(var d=0;d1&&arguments[1]!==void 0?arguments[1]:!1,i={map:this.cache};return n.forEach(function(l){if(!i)i=void 0;else{var c;i=(c=i)===null||c===void 0||(c=c.map)===null||c===void 0?void 0:c.get(l)}}),(r=i)!==null&&r!==void 0&&r.value&&a&&(i.value[1]=this.cacheCallTimes++),(o=i)===null||o===void 0?void 0:o.value}},{key:"get",value:function(n){var r;return(r=this.internalGet(n,!0))===null||r===void 0?void 0:r[0]}},{key:"has",value:function(n){return!!this.internalGet(n)}},{key:"set",value:function(n,r){var o=this;if(!this.has(n)){if(this.size()+1>e.MAX_CACHE_SIZE+e.MAX_CACHE_OFFSET){var a=this.keys.reduce(function(u,d){var f=ee(u,2),m=f[1];return o.internalGet(d)[1]0,void 0),vC+=1}return vn(e,[{key:"getDerivativeToken",value:function(n){return this.derivatives.reduce(function(r,o){return o(n,r)},void 0)}}]),e}(),nv=new I0;function ig(e){var t=Array.isArray(e)?e:[e];return nv.has(t)||nv.set(t,new FE(t)),nv.get(t)}var t4=new WeakMap,rv={};function n4(e,t){for(var n=t4,r=0;r3&&arguments[3]!==void 0?arguments[3]:{},a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(a)return e;var i=k(k({},o),{},(r={},D(r,Cl,t),D(r,po,n),r)),l=Object.keys(i).map(function(c){var u=i[c];return u?"".concat(c,'="').concat(u,'"'):null}).filter(function(c){return c}).join(" ");return"")}var Ku=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return"--".concat(n?"".concat(n,"-"):"").concat(t).replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z0-9]+)/g,"$1-$2").replace(/([a-z])([A-Z0-9])/g,"$1-$2").toLowerCase()},r4=function(t,n,r){return Object.keys(t).length?".".concat(n).concat(r!=null&&r.scope?".".concat(r.scope):"","{").concat(Object.entries(t).map(function(o){var a=ee(o,2),i=a[0],l=a[1];return"".concat(i,":").concat(l,";")}).join(""),"}"):""},HE=function(t,n,r){var o={},a={};return Object.entries(t).forEach(function(i){var l,c,u=ee(i,2),d=u[0],f=u[1];if(r!=null&&(l=r.preserve)!==null&&l!==void 0&&l[d])a[d]=f;else if((typeof f=="string"||typeof f=="number")&&!(r!=null&&(c=r.ignore)!==null&&c!==void 0&&c[d])){var m,v=Ku(d,r==null?void 0:r.prefix);o[v]=typeof f=="number"&&!(r!=null&&(m=r.unitless)!==null&&m!==void 0&&m[d])?"".concat(f,"px"):String(f),a[d]="var(".concat(v,")")}}),[a,r4(o,n,{scope:r==null?void 0:r.scope})]},hC=Bn()?s.useLayoutEffect:s.useEffect,Ot=function(t,n){var r=s.useRef(!0);hC(function(){return t(r.current)},n),hC(function(){return r.current=!1,function(){r.current=!0}},[])},sg=function(t,n){Ot(function(r){if(!r)return t()},n)},o4=k({},xc),yC=o4.useInsertionEffect,a4=function(t,n,r){s.useMemo(t,r),Ot(function(){return n(!0)},r)},i4=yC?function(e,t,n){return yC(function(){return e(),t()},n)}:a4,l4=k({},xc),s4=l4.useInsertionEffect,c4=function(t){var n=[],r=!1;function o(a){r||n.push(a)}return s.useEffect(function(){return r=!1,function(){r=!0,n.length&&n.forEach(function(a){return a()})}},t),o},u4=function(){return function(t){t()}},d4=typeof s4<"u"?c4:u4;function N0(e,t,n,r,o){var a=s.useContext(Ic),i=a.cache,l=[e].concat(he(t)),c=ag(l),u=d4([c]),d=function(p){i.opUpdate(c,function(b){var h=b||[void 0,void 0],g=ee(h,2),y=g[0],C=y===void 0?0:y,x=g[1],S=x,w=S||n(),E=[C,w];return p?p(E):E})};s.useMemo(function(){d()},[c]);var f=i.opGet(c),m=f[1];return i4(function(){o==null||o(m)},function(v){return d(function(p){var b=ee(p,2),h=b[0],g=b[1];return v&&h===0&&(o==null||o(m)),[h+1,g]}),function(){i.opUpdate(c,function(p){var b=p||[],h=ee(b,2),g=h[0],y=g===void 0?0:g,C=h[1],x=y-1;return x===0?(u(function(){(v||!i.opGet(c))&&(r==null||r(C,!1))}),null):[y-1,C]})}},[c]),m}var f4={},m4="css",Ya=new Map;function v4(e){Ya.set(e,(Ya.get(e)||0)+1)}function p4(e,t){if(typeof document<"u"){var n=document.querySelectorAll("style[".concat(Cl,'="').concat(e,'"]'));n.forEach(function(r){if(r[Ca]===t){var o;(o=r.parentNode)===null||o===void 0||o.removeChild(r)}})}}var g4=0;function h4(e,t){Ya.set(e,(Ya.get(e)||0)-1);var n=Array.from(Ya.keys()),r=n.filter(function(o){var a=Ya.get(o)||0;return a<=0});n.length-r.length>g4&&r.forEach(function(o){p4(o,t),Ya.delete(o)})}var y4=function(t,n,r,o){var a=r.getDerivativeToken(t),i=k(k({},a),n);return o&&(i=o(i)),i},VE="token";function b4(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=s.useContext(Ic),o=r.cache.instanceId,a=r.container,i=n.salt,l=i===void 0?"":i,c=n.override,u=c===void 0?f4:c,d=n.formatToken,f=n.getComputedToken,m=n.cssVar,v=n4(function(){return Object.assign.apply(Object,[{}].concat(he(t)))},t),p=Rs(v),b=Rs(u),h=m?Rs(m):"",g=N0(VE,[l,e.id,p,b,h],function(){var y,C=f?f(v,u,e):y4(v,u,e,d),x=k({},C),S="";if(m){var w=HE(C,m.key,{prefix:m.prefix,ignore:m.ignore,unitless:m.unitless,preserve:m.preserve}),E=ee(w,2);C=E[0],S=E[1]}var O=gC(C,l);C._tokenKey=O,x._tokenKey=gC(x,l);var $=(y=m==null?void 0:m.key)!==null&&y!==void 0?y:O;C._themeKey=$,v4($);var R="".concat(m4,"-").concat(rc(O));return C._hashId=R,[C,R,x,S,(m==null?void 0:m.key)||""]},function(y){h4(y[0]._themeKey,o)},function(y){var C=ee(y,4),x=C[0],S=C[3];if(m&&S){var w=Xo(S,rc("css-variables-".concat(x._themeKey)),{mark:po,prepend:"queue",attachTo:a,priority:-999});w[Ca]=o,w.setAttribute(Cl,x._themeKey)}});return g}var C4=function(t,n,r){var o=ee(t,5),a=o[2],i=o[3],l=o[4],c=r||{},u=c.plain;if(!i)return null;var d=a._tokenKey,f=-999,m={"data-rc-order":"prependQueue","data-rc-priority":"".concat(f)},v=_d(i,l,d,m,u);return[f,d,v]},S4={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},WE="comm",KE="rule",UE="decl",x4="@import",w4="@namespace",$4="@keyframes",E4="@layer",GE=Math.abs,T0=String.fromCharCode;function qE(e){return e.trim()}function Uu(e,t,n){return e.replace(t,n)}function O4(e,t,n){return e.indexOf(t,n)}function il(e,t){return e.charCodeAt(t)|0}function Sl(e,t,n){return e.slice(t,n)}function To(e){return e.length}function R4(e){return e.length}function gu(e,t){return t.push(e),e}var zf=1,xl=1,XE=0,Qr=0,En=0,_l="";function M0(e,t,n,r,o,a,i,l){return{value:e,root:t,parent:n,type:r,props:o,children:a,line:zf,column:xl,length:i,return:"",siblings:l}}function P4(){return En}function I4(){return En=Qr>0?il(_l,--Qr):0,xl--,En===10&&(xl=1,zf--),En}function go(){return En=Qr2||ac(En)>3?"":" "}function _4(e,t){for(;--t&&go()&&!(En<48||En>102||En>57&&En<65||En>70&&En<97););return jf(e,Gu()+(t<6&&Sa()==32&&go()==32))}function cg(e){for(;go();)switch(En){case e:return Qr;case 34:case 39:e!==34&&e!==39&&cg(En);break;case 40:e===41&&cg(e);break;case 92:go();break}return Qr}function z4(e,t){for(;go()&&e+En!==57;)if(e+En===84&&Sa()===47)break;return"/*"+jf(t,Qr-1)+"*"+T0(e===47?e:go())}function j4(e){for(;!ac(Sa());)go();return jf(e,Qr)}function L4(e){return T4(qu("",null,null,null,[""],e=N4(e),0,[0],e))}function qu(e,t,n,r,o,a,i,l,c){for(var u=0,d=0,f=i,m=0,v=0,p=0,b=1,h=1,g=1,y=0,C="",x=o,S=a,w=r,E=C;h;)switch(p=y,y=go()){case 40:if(p!=108&&il(E,f-1)==58){O4(E+=Uu(ov(y),"&","&\f"),"&\f",GE(u?l[u-1]:0))!=-1&&(g=-1);break}case 34:case 39:case 91:E+=ov(y);break;case 9:case 10:case 13:case 32:E+=M4(p);break;case 92:E+=_4(Gu()-1,7);continue;case 47:switch(Sa()){case 42:case 47:gu(D4(z4(go(),Gu()),t,n,c),c),(ac(p||1)==5||ac(Sa()||1)==5)&&To(E)&&Sl(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*b:l[u++]=To(E)*g;case 125*b:case 59:case 0:switch(y){case 0:case 125:h=0;case 59+d:g==-1&&(E=Uu(E,/\f/g,"")),v>0&&(To(E)-f||b===0&&p===47)&&gu(v>32?CC(E+";",r,n,f-1,c):CC(Uu(E," ","")+";",r,n,f-2,c),c);break;case 59:E+=";";default:if(gu(w=bC(E,t,n,u,d,o,l,C,x=[],S=[],f,a),a),y===123)if(d===0)qu(E,t,w,w,x,a,f,l,S);else{switch(m){case 99:if(il(E,3)===110)break;case 108:if(il(E,2)===97)break;default:d=0;case 100:case 109:case 115:}d?qu(e,w,w,r&&gu(bC(e,w,w,0,0,o,l,C,o,x=[],f,S),S),o,S,f,l,r?x:S):qu(E,w,w,w,[""],S,0,l,S)}}u=d=v=0,b=g=1,C=E="",f=i;break;case 58:f=1+To(E),v=p;default:if(b<1){if(y==123)--b;else if(y==125&&b++==0&&I4()==125)continue}switch(E+=T0(y),y*b){case 38:g=d>0?1:(E+="\f",-1);break;case 44:l[u++]=(To(E)-1)*g,g=1;break;case 64:Sa()===45&&(E+=ov(go())),m=Sa(),d=f=To(C=E+=j4(Gu())),y++;break;case 45:p===45&&To(E)==2&&(b=0)}}return a}function bC(e,t,n,r,o,a,i,l,c,u,d,f){for(var m=o-1,v=o===0?a:[""],p=R4(v),b=0,h=0,g=0;b0?v[y]+" "+C:Uu(C,/&\f/g,v[y])))&&(c[g++]=x);return M0(e,t,n,o===0?KE:l,c,u,d,f)}function D4(e,t,n,r){return M0(e,t,n,WE,T0(P4()),Sl(e,2,-2),0,r)}function CC(e,t,n,r,o){return M0(e,t,n,UE,Sl(e,0,r),Sl(e,r+1,-1),r,o)}function ug(e,t){for(var n="",r=0;r1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]},o=r.root,a=r.injectHash,i=r.parentSelectors,l=n.hashId,c=n.layer;n.path;var u=n.hashPriority,d=n.transformers,f=d===void 0?[]:d;n.linters;var m="",v={};function p(g){var y=g.getName(l);if(!v[y]){var C=e(g.style,n,{root:!1,parentSelectors:i}),x=ee(C,1),S=x[0];v[y]="@keyframes ".concat(g.getName(l)).concat(S)}}function b(g){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return g.forEach(function(C){Array.isArray(C)?b(C,y):C&&y.push(C)}),y}var h=b(Array.isArray(t)?t:[t]);return h.forEach(function(g){var y=typeof g=="string"&&!o?{}:g;if(typeof y=="string")m+="".concat(y,` +`);else if(y._keyframe)p(y);else{var C=f.reduce(function(x,S){var w;return(S==null||(w=S.visit)===null||w===void 0?void 0:w.call(S,x))||x},y);Object.keys(C).forEach(function(x){var S=C[x];if(We(S)==="object"&&S&&(x!=="animationName"||!S._keyframe)&&!V4(S)){var w=!1,E=x.trim(),O=!1;(o||a)&&l?E.startsWith("@")?w=!0:E==="&"?E=xC("",l,u):E=xC(x,l,u):o&&!l&&(E==="&"||E==="")&&(E="",O=!0);var $=e(S,n,{root:O,injectHash:w,parentSelectors:[].concat(he(i),[E])}),R=ee($,2),I=R[0],N=R[1];v=k(k({},v),N),m+="".concat(E).concat(I)}else{let M=function(_,z){var j=_.replace(/[A-Z]/g,function(F){return"-".concat(F.toLowerCase())}),L=z;!S4[_]&&typeof L=="number"&&L!==0&&(L="".concat(L,"px")),_==="animationName"&&z!==null&&z!==void 0&&z._keyframe&&(p(z),L=z.getName(l)),m+="".concat(j,":").concat(L,";")};var T,P=(T=S==null?void 0:S.value)!==null&&T!==void 0?T:S;We(S)==="object"&&S!==null&&S!==void 0&&S[JE]&&Array.isArray(P)?P.forEach(function(_){M(x,_)}):M(x,P)}})}}),o?c&&(m&&(m="@layer ".concat(c.name," {").concat(m,"}")),c.dependencies&&(v["@layer ".concat(c.name)]=c.dependencies.map(function(g){return"@layer ".concat(g,", ").concat(c.name,";")}).join(` +`))):m="{".concat(m,"}"),[m,v]};function ZE(e,t){return rc("".concat(e.join("%")).concat(t))}function K4(){return null}var e2="style";function dg(e,t){var n=e.token,r=e.path,o=e.hashId,a=e.layer,i=e.nonce,l=e.clientOnly,c=e.order,u=c===void 0?0:c,d=s.useContext(Ic),f=d.autoClear;d.mock;var m=d.defaultCache,v=d.hashPriority,p=d.container,b=d.ssrInline,h=d.transformers,g=d.linters,y=d.cache,C=d.layer,x=n._tokenKey,S=[x];C&&S.push("layer"),S.push.apply(S,he(r));var w=lg,E=N0(e2,S,function(){var N=S.join("|");if(A4(N)){var T=F4(N),P=ee(T,2),M=P[0],_=P[1];if(M)return[M,x,_,{},l,u]}var z=t(),j=W4(z,{hashId:o,hashPriority:v,layer:C?a:void 0,path:r.join("-"),transformers:h,linters:g}),L=ee(j,2),F=L[0],W=L[1],H=Xu(F),A=ZE(S,H);return[H,x,A,W,l,u]},function(N,T){var P=ee(N,3),M=P[2];(T||f)&&lg&&oc(M,{mark:po})},function(N){var T=ee(N,4),P=T[0];T[1];var M=T[2],_=T[3];if(w&&P!==YE){var z={mark:po,prepend:C?!1:"queue",attachTo:p,priority:u},j=typeof i=="function"?i():i;j&&(z.csp={nonce:j});var L=[],F=[];Object.keys(_).forEach(function(H){H.startsWith("@layer")?L.push(H):F.push(H)}),L.forEach(function(H){Xo(Xu(_[H]),"_layer-".concat(H),k(k({},z),{},{prepend:!0}))});var W=Xo(P,M,z);W[Ca]=y.instanceId,W.setAttribute(Cl,x),F.forEach(function(H){Xo(Xu(_[H]),"_effect-".concat(H),z)})}}),O=ee(E,3),$=O[0],R=O[1],I=O[2];return function(N){var T;if(!b||w||!m)T=s.createElement(K4,null);else{var P;T=s.createElement("style",pe({},(P={},D(P,Cl,R),D(P,po,I),P),{dangerouslySetInnerHTML:{__html:$}}))}return s.createElement(s.Fragment,null,T,N)}}var U4=function(t,n,r){var o=ee(t,6),a=o[0],i=o[1],l=o[2],c=o[3],u=o[4],d=o[5],f=r||{},m=f.plain;if(u)return null;var v=a,p={"data-rc-order":"prependQueue","data-rc-priority":"".concat(d)};return v=_d(a,i,l,p,m),c&&Object.keys(c).forEach(function(b){if(!n[b]){n[b]=!0;var h=Xu(c[b]),g=_d(h,i,"_effect-".concat(b),p,m);b.startsWith("@layer")?v=g+v:v+=g}}),[d,l,v]},t2="cssVar",G4=function(t,n){var r=t.key,o=t.prefix,a=t.unitless,i=t.ignore,l=t.token,c=t.scope,u=c===void 0?"":c,d=s.useContext(Ic),f=d.cache.instanceId,m=d.container,v=l._tokenKey,p=[].concat(he(t.path),[r,u,v]),b=N0(t2,p,function(){var h=n(),g=HE(h,r,{prefix:o,unitless:a,ignore:i,scope:u}),y=ee(g,2),C=y[0],x=y[1],S=ZE(p,x);return[C,x,S,r]},function(h){var g=ee(h,3),y=g[2];lg&&oc(y,{mark:po})},function(h){var g=ee(h,3),y=g[1],C=g[2];if(y){var x=Xo(y,C,{mark:po,prepend:"queue",attachTo:m,priority:-999});x[Ca]=f,x.setAttribute(Cl,r)}});return b},q4=function(t,n,r){var o=ee(t,4),a=o[1],i=o[2],l=o[3],c=r||{},u=c.plain;if(!a)return null;var d=-999,f={"data-rc-order":"prependQueue","data-rc-priority":"".concat(d)},m=_d(a,l,i,f,u);return[d,i,m]},Zl;Zl={},D(Zl,e2,U4),D(Zl,VE,C4),D(Zl,t2,q4);var Nt=function(){function e(t,n){mn(this,e),D(this,"name",void 0),D(this,"style",void 0),D(this,"_keyframe",!0),this.name=t,this.style=n}return vn(e,[{key:"getName",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return n?"".concat(n,"-").concat(this.name):this.name}}]),e}();function Ii(e){return e.notSplit=!0,e}Ii(["borderTop","borderBottom"]),Ii(["borderTop"]),Ii(["borderBottom"]),Ii(["borderLeft","borderRight"]),Ii(["borderLeft"]),Ii(["borderRight"]);var _0=s.createContext({});function n2(e){return LE(e)||ME(e)||O0(e)||DE()}function _r(e,t){for(var n=e,r=0;r3&&arguments[3]!==void 0?arguments[3]:!1;return t.length&&r&&n===void 0&&!_r(e,t.slice(0,-1))?e:r2(e,t,n,r)}function X4(e){return We(e)==="object"&&e!==null&&Object.getPrototypeOf(e)===Object.prototype}function wC(e){return Array.isArray(e)?[]:{}}var Y4=typeof Reflect>"u"?Object.keys:Reflect.ownKeys;function Qi(){for(var e=arguments.length,t=new Array(e),n=0;n{const e=()=>{};return e.deprecated=Q4,e},Z4=s.createContext(void 0);var o2={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"},ez={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0},tz=k(k({},ez),{},{locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"OK",clear:"Clear",week:"Week",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",dateFormat:"M/D/YYYY",dateTimeFormat:"M/D/YYYY HH:mm:ss",previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"});const a2={placeholder:"Select time",rangePlaceholder:["Start time","End time"]},$C={lang:Object.assign({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},tz),timePickerLocale:Object.assign({},a2)},Pr="${label} is not a valid ${type}",yo={locale:"en",Pagination:o2,DatePicker:$C,TimePicker:a2,Calendar:$C,global:{placeholder:"Please select",close:"Close"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckAll:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",deselectAll:"Deselect all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand",collapse:"Collapse"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:Pr,method:Pr,array:Pr,object:Pr,number:Pr,date:Pr,boolean:Pr,integer:Pr,float:Pr,regexp:Pr,email:Pr,url:Pr,hex:Pr},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"},ColorPicker:{presetEmpty:"Empty",transparent:"Transparent",singleColor:"Single",gradientColor:"Gradient"}};let Yu=Object.assign({},yo.Modal),Qu=[];const EC=()=>Qu.reduce((e,t)=>Object.assign(Object.assign({},e),t),yo.Modal);function nz(e){if(e){const t=Object.assign({},e);return Qu.push(t),Yu=EC(),()=>{Qu=Qu.filter(n=>n!==t),Yu=EC()}}Yu=Object.assign({},yo.Modal)}function i2(){return Yu}const z0=s.createContext(void 0),$o=(e,t)=>{const n=s.useContext(z0),r=s.useMemo(()=>{var a;const i=t||yo[e],l=(a=n==null?void 0:n[e])!==null&&a!==void 0?a:{};return Object.assign(Object.assign({},typeof i=="function"?i():i),l||{})},[e,t,n]),o=s.useMemo(()=>{const a=n==null?void 0:n.locale;return n!=null&&n.exist&&!a?yo.locale:a},[n]);return[r,o]},rz="internalMark",oz=e=>{const{locale:t={},children:n,_ANT_MARK__:r}=e;s.useEffect(()=>nz(t==null?void 0:t.Modal),[t]);const o=s.useMemo(()=>Object.assign(Object.assign({},t),{exist:!0}),[t]);return s.createElement(z0.Provider,{value:o},n)},l2={blue:"#1677FF",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#EB2F96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},ic=Object.assign(Object.assign({},l2),{colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorLink:"",colorTextBase:"",colorBgBase:"",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, +'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', +'Noto Color Emoji'`,fontFamilyCode:"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace",fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1,motion:!0}),jn=Math.round;function av(e,t){const n=e.replace(/^[^(]*\((.*)/,"$1").replace(/\).*/,"").match(/\d*\.?\d+%?/g)||[],r=n.map(o=>parseFloat(o));for(let o=0;o<3;o+=1)r[o]=t(r[o]||0,n[o]||"",o);return n[3]?r[3]=n[3].includes("%")?r[3]/100:r[3]:r[3]=1,r}const OC=(e,t,n)=>n===0?e:e/100;function es(e,t){const n=t||255;return e>n?n:e<0?0:e}class zt{constructor(t){D(this,"isValid",!0),D(this,"r",0),D(this,"g",0),D(this,"b",0),D(this,"a",1),D(this,"_h",void 0),D(this,"_s",void 0),D(this,"_l",void 0),D(this,"_v",void 0),D(this,"_max",void 0),D(this,"_min",void 0),D(this,"_brightness",void 0);function n(o){return o[0]in t&&o[1]in t&&o[2]in t}if(t)if(typeof t=="string"){let a=function(i){return o.startsWith(i)};var r=a;const o=t.trim();/^#?[A-F\d]{3,8}$/i.test(o)?this.fromHexString(o):a("rgb")?this.fromRgbString(o):a("hsl")?this.fromHslString(o):(a("hsv")||a("hsb"))&&this.fromHsvString(o)}else if(t instanceof zt)this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this._h=t._h,this._s=t._s,this._l=t._l,this._v=t._v;else if(n("rgb"))this.r=es(t.r),this.g=es(t.g),this.b=es(t.b),this.a=typeof t.a=="number"?es(t.a,1):1;else if(n("hsl"))this.fromHsl(t);else if(n("hsv"))this.fromHsv(t);else throw new Error("@ant-design/fast-color: unsupported input "+JSON.stringify(t))}setR(t){return this._sc("r",t)}setG(t){return this._sc("g",t)}setB(t){return this._sc("b",t)}setA(t){return this._sc("a",t,1)}setHue(t){const n=this.toHsv();return n.h=t,this._c(n)}getLuminance(){function t(a){const i=a/255;return i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}const n=t(this.r),r=t(this.g),o=t(this.b);return .2126*n+.7152*r+.0722*o}getHue(){if(typeof this._h>"u"){const t=this.getMax()-this.getMin();t===0?this._h=0:this._h=jn(60*(this.r===this.getMax()?(this.g-this.b)/t+(this.g"u"){const t=this.getMax()-this.getMin();t===0?this._s=0:this._s=t/this.getMax()}return this._s}getLightness(){return typeof this._l>"u"&&(this._l=(this.getMax()+this.getMin())/510),this._l}getValue(){return typeof this._v>"u"&&(this._v=this.getMax()/255),this._v}getBrightness(){return typeof this._brightness>"u"&&(this._brightness=(this.r*299+this.g*587+this.b*114)/1e3),this._brightness}darken(t=10){const n=this.getHue(),r=this.getSaturation();let o=this.getLightness()-t/100;return o<0&&(o=0),this._c({h:n,s:r,l:o,a:this.a})}lighten(t=10){const n=this.getHue(),r=this.getSaturation();let o=this.getLightness()+t/100;return o>1&&(o=1),this._c({h:n,s:r,l:o,a:this.a})}mix(t,n=50){const r=this._c(t),o=n/100,a=l=>(r[l]-this[l])*o+this[l],i={r:jn(a("r")),g:jn(a("g")),b:jn(a("b")),a:jn(a("a")*100)/100};return this._c(i)}tint(t=10){return this.mix({r:255,g:255,b:255,a:1},t)}shade(t=10){return this.mix({r:0,g:0,b:0,a:1},t)}onBackground(t){const n=this._c(t),r=this.a+n.a*(1-this.a),o=a=>jn((this[a]*this.a+n[a]*n.a*(1-this.a))/r);return this._c({r:o("r"),g:o("g"),b:o("b"),a:r})}isDark(){return this.getBrightness()<128}isLight(){return this.getBrightness()>=128}equals(t){return this.r===t.r&&this.g===t.g&&this.b===t.b&&this.a===t.a}clone(){return this._c(this)}toHexString(){let t="#";const n=(this.r||0).toString(16);t+=n.length===2?n:"0"+n;const r=(this.g||0).toString(16);t+=r.length===2?r:"0"+r;const o=(this.b||0).toString(16);if(t+=o.length===2?o:"0"+o,typeof this.a=="number"&&this.a>=0&&this.a<1){const a=jn(this.a*255).toString(16);t+=a.length===2?a:"0"+a}return t}toHsl(){return{h:this.getHue(),s:this.getSaturation(),l:this.getLightness(),a:this.a}}toHslString(){const t=this.getHue(),n=jn(this.getSaturation()*100),r=jn(this.getLightness()*100);return this.a!==1?`hsla(${t},${n}%,${r}%,${this.a})`:`hsl(${t},${n}%,${r}%)`}toHsv(){return{h:this.getHue(),s:this.getSaturation(),v:this.getValue(),a:this.a}}toRgb(){return{r:this.r,g:this.g,b:this.b,a:this.a}}toRgbString(){return this.a!==1?`rgba(${this.r},${this.g},${this.b},${this.a})`:`rgb(${this.r},${this.g},${this.b})`}toString(){return this.toRgbString()}_sc(t,n,r){const o=this.clone();return o[t]=es(n,r),o}_c(t){return new this.constructor(t)}getMax(){return typeof this._max>"u"&&(this._max=Math.max(this.r,this.g,this.b)),this._max}getMin(){return typeof this._min>"u"&&(this._min=Math.min(this.r,this.g,this.b)),this._min}fromHexString(t){const n=t.replace("#","");function r(o,a){return parseInt(n[o]+n[a||o],16)}n.length<6?(this.r=r(0),this.g=r(1),this.b=r(2),this.a=n[3]?r(3)/255:1):(this.r=r(0,1),this.g=r(2,3),this.b=r(4,5),this.a=n[6]?r(6,7)/255:1)}fromHsl({h:t,s:n,l:r,a:o}){if(this._h=t%360,this._s=n,this._l=r,this.a=typeof o=="number"?o:1,n<=0){const m=jn(r*255);this.r=m,this.g=m,this.b=m}let a=0,i=0,l=0;const c=t/60,u=(1-Math.abs(2*r-1))*n,d=u*(1-Math.abs(c%2-1));c>=0&&c<1?(a=u,i=d):c>=1&&c<2?(a=d,i=u):c>=2&&c<3?(i=u,l=d):c>=3&&c<4?(i=d,l=u):c>=4&&c<5?(a=d,l=u):c>=5&&c<6&&(a=u,l=d);const f=r-u/2;this.r=jn((a+f)*255),this.g=jn((i+f)*255),this.b=jn((l+f)*255)}fromHsv({h:t,s:n,v:r,a:o}){this._h=t%360,this._s=n,this._v=r,this.a=typeof o=="number"?o:1;const a=jn(r*255);if(this.r=a,this.g=a,this.b=a,n<=0)return;const i=t/60,l=Math.floor(i),c=i-l,u=jn(r*(1-n)*255),d=jn(r*(1-n*c)*255),f=jn(r*(1-n*(1-c))*255);switch(l){case 0:this.g=f,this.b=u;break;case 1:this.r=d,this.b=u;break;case 2:this.r=u,this.b=f;break;case 3:this.r=u,this.g=d;break;case 4:this.r=f,this.g=u;break;case 5:default:this.g=u,this.b=d;break}}fromHsvString(t){const n=av(t,OC);this.fromHsv({h:n[0],s:n[1],v:n[2],a:n[3]})}fromHslString(t){const n=av(t,OC);this.fromHsl({h:n[0],s:n[1],l:n[2],a:n[3]})}fromRgbString(t){const n=av(t,(r,o)=>o.includes("%")?jn(r/100*255):r);this.r=n[0],this.g=n[1],this.b=n[2],this.a=n[3]}}var hu=2,RC=.16,az=.05,iz=.05,lz=.15,s2=5,c2=4,sz=[{index:7,amount:15},{index:6,amount:25},{index:5,amount:30},{index:5,amount:45},{index:5,amount:65},{index:5,amount:85},{index:4,amount:90},{index:3,amount:95},{index:2,amount:97},{index:1,amount:98}];function PC(e,t,n){var r;return Math.round(e.h)>=60&&Math.round(e.h)<=240?r=n?Math.round(e.h)-hu*t:Math.round(e.h)+hu*t:r=n?Math.round(e.h)+hu*t:Math.round(e.h)-hu*t,r<0?r+=360:r>=360&&(r-=360),r}function IC(e,t,n){if(e.h===0&&e.s===0)return e.s;var r;return n?r=e.s-RC*t:t===c2?r=e.s+RC:r=e.s+az*t,r>1&&(r=1),n&&t===s2&&r>.1&&(r=.1),r<.06&&(r=.06),Math.round(r*100)/100}function NC(e,t,n){var r;return n?r=e.v+iz*t:r=e.v-lz*t,r=Math.max(0,Math.min(1,r)),Math.round(r*100)/100}function lc(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=[],r=new zt(e),o=r.toHsv(),a=s2;a>0;a-=1){var i=new zt({h:PC(o,a,!0),s:IC(o,a,!0),v:NC(o,a,!0)});n.push(i)}n.push(r);for(var l=1;l<=c2;l+=1){var c=new zt({h:PC(o,l),s:IC(o,l),v:NC(o,l)});n.push(c)}return t.theme==="dark"?sz.map(function(u){var d=u.index,f=u.amount;return new zt(t.backgroundColor||"#141414").mix(n[d],f).toHexString()}):n.map(function(u){return u.toHexString()})}var ll={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},fg=["#fff1f0","#ffccc7","#ffa39e","#ff7875","#ff4d4f","#f5222d","#cf1322","#a8071a","#820014","#5c0011"];fg.primary=fg[5];var mg=["#fff2e8","#ffd8bf","#ffbb96","#ff9c6e","#ff7a45","#fa541c","#d4380d","#ad2102","#871400","#610b00"];mg.primary=mg[5];var vg=["#fff7e6","#ffe7ba","#ffd591","#ffc069","#ffa940","#fa8c16","#d46b08","#ad4e00","#873800","#612500"];vg.primary=vg[5];var zd=["#fffbe6","#fff1b8","#ffe58f","#ffd666","#ffc53d","#faad14","#d48806","#ad6800","#874d00","#613400"];zd.primary=zd[5];var pg=["#feffe6","#ffffb8","#fffb8f","#fff566","#ffec3d","#fadb14","#d4b106","#ad8b00","#876800","#614700"];pg.primary=pg[5];var gg=["#fcffe6","#f4ffb8","#eaff8f","#d3f261","#bae637","#a0d911","#7cb305","#5b8c00","#3f6600","#254000"];gg.primary=gg[5];var hg=["#f6ffed","#d9f7be","#b7eb8f","#95de64","#73d13d","#52c41a","#389e0d","#237804","#135200","#092b00"];hg.primary=hg[5];var yg=["#e6fffb","#b5f5ec","#87e8de","#5cdbd3","#36cfc9","#13c2c2","#08979c","#006d75","#00474f","#002329"];yg.primary=yg[5];var wl=["#e6f4ff","#bae0ff","#91caff","#69b1ff","#4096ff","#1677ff","#0958d9","#003eb3","#002c8c","#001d66"];wl.primary=wl[5];var bg=["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178","#030852"];bg.primary=bg[5];var Cg=["#f9f0ff","#efdbff","#d3adf7","#b37feb","#9254de","#722ed1","#531dab","#391085","#22075e","#120338"];Cg.primary=Cg[5];var Sg=["#fff0f6","#ffd6e7","#ffadd2","#ff85c0","#f759ab","#eb2f96","#c41d7f","#9e1068","#780650","#520339"];Sg.primary=Sg[5];var xg=["#a6a6a6","#999999","#8c8c8c","#808080","#737373","#666666","#404040","#1a1a1a","#000000","#000000"];xg.primary=xg[5];var iv={red:fg,volcano:mg,orange:vg,gold:zd,yellow:pg,lime:gg,green:hg,cyan:yg,blue:wl,geekblue:bg,purple:Cg,magenta:Sg,grey:xg};function cz(e,{generateColorPalettes:t,generateNeutralColorPalettes:n}){const{colorSuccess:r,colorWarning:o,colorError:a,colorInfo:i,colorPrimary:l,colorBgBase:c,colorTextBase:u}=e,d=t(l),f=t(r),m=t(o),v=t(a),p=t(i),b=n(c,u),h=e.colorLink||e.colorInfo,g=t(h),y=new zt(v[1]).mix(new zt(v[3]),50).toHexString();return Object.assign(Object.assign({},b),{colorPrimaryBg:d[1],colorPrimaryBgHover:d[2],colorPrimaryBorder:d[3],colorPrimaryBorderHover:d[4],colorPrimaryHover:d[5],colorPrimary:d[6],colorPrimaryActive:d[7],colorPrimaryTextHover:d[8],colorPrimaryText:d[9],colorPrimaryTextActive:d[10],colorSuccessBg:f[1],colorSuccessBgHover:f[2],colorSuccessBorder:f[3],colorSuccessBorderHover:f[4],colorSuccessHover:f[4],colorSuccess:f[6],colorSuccessActive:f[7],colorSuccessTextHover:f[8],colorSuccessText:f[9],colorSuccessTextActive:f[10],colorErrorBg:v[1],colorErrorBgHover:v[2],colorErrorBgFilledHover:y,colorErrorBgActive:v[3],colorErrorBorder:v[3],colorErrorBorderHover:v[4],colorErrorHover:v[5],colorError:v[6],colorErrorActive:v[7],colorErrorTextHover:v[8],colorErrorText:v[9],colorErrorTextActive:v[10],colorWarningBg:m[1],colorWarningBgHover:m[2],colorWarningBorder:m[3],colorWarningBorderHover:m[4],colorWarningHover:m[4],colorWarning:m[6],colorWarningActive:m[7],colorWarningTextHover:m[8],colorWarningText:m[9],colorWarningTextActive:m[10],colorInfoBg:p[1],colorInfoBgHover:p[2],colorInfoBorder:p[3],colorInfoBorderHover:p[4],colorInfoHover:p[4],colorInfo:p[6],colorInfoActive:p[7],colorInfoTextHover:p[8],colorInfoText:p[9],colorInfoTextActive:p[10],colorLinkHover:g[4],colorLink:g[6],colorLinkActive:g[7],colorBgMask:new zt("#000").setA(.45).toRgbString(),colorWhite:"#fff"})}const uz=e=>{let t=e,n=e,r=e,o=e;return e<6&&e>=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?n=4:e<8&&e>=7?n=5:e<14&&e>=8?n=6:e<16&&e>=14?n=7:e>=16&&(n=8),e<6&&e>=2?r=1:e>=6&&(r=2),e>4&&e<8?o=4:e>=8&&(o=6),{borderRadius:e,borderRadiusXS:r,borderRadiusSM:n,borderRadiusLG:t,borderRadiusOuter:o}};function dz(e){const{motionUnit:t,motionBase:n,borderRadius:r,lineWidth:o}=e;return Object.assign({motionDurationFast:`${(n+t).toFixed(1)}s`,motionDurationMid:`${(n+t*2).toFixed(1)}s`,motionDurationSlow:`${(n+t*3).toFixed(1)}s`,lineWidthBold:o+1},uz(r))}const fz=e=>{const{controlHeight:t}=e;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}};function Ju(e){return(e+8)/e}function mz(e){const t=Array.from({length:10}).map((n,r)=>{const o=r-1,a=e*Math.pow(Math.E,o/5),i=r>1?Math.floor(a):Math.ceil(a);return Math.floor(i/2)*2});return t[1]=e,t.map(n=>({size:n,lineHeight:Ju(n)}))}const vz=e=>{const t=mz(e),n=t.map(d=>d.size),r=t.map(d=>d.lineHeight),o=n[1],a=n[0],i=n[2],l=r[1],c=r[0],u=r[2];return{fontSizeSM:a,fontSize:o,fontSizeLG:i,fontSizeXL:n[3],fontSizeHeading1:n[6],fontSizeHeading2:n[5],fontSizeHeading3:n[4],fontSizeHeading4:n[3],fontSizeHeading5:n[2],lineHeight:l,lineHeightLG:u,lineHeightSM:c,fontHeight:Math.round(l*o),fontHeightLG:Math.round(u*i),fontHeightSM:Math.round(c*a),lineHeightHeading1:r[6],lineHeightHeading2:r[5],lineHeightHeading3:r[4],lineHeightHeading4:r[3],lineHeightHeading5:r[2]}};function pz(e){const{sizeUnit:t,sizeStep:n}=e;return{sizeXXL:t*(n+8),sizeXL:t*(n+4),sizeLG:t*(n+2),sizeMD:t*(n+1),sizeMS:t*n,size:t*n,sizeSM:t*(n-1),sizeXS:t*(n-2),sizeXXS:t*(n-3)}}const kr=(e,t)=>new zt(e).setA(t).toRgbString(),ts=(e,t)=>new zt(e).darken(t).toHexString(),gz=e=>{const t=lc(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},hz=(e,t)=>{const n=e||"#fff",r=t||"#000";return{colorBgBase:n,colorTextBase:r,colorText:kr(r,.88),colorTextSecondary:kr(r,.65),colorTextTertiary:kr(r,.45),colorTextQuaternary:kr(r,.25),colorFill:kr(r,.15),colorFillSecondary:kr(r,.06),colorFillTertiary:kr(r,.04),colorFillQuaternary:kr(r,.02),colorBgSolid:kr(r,1),colorBgSolidHover:kr(r,.75),colorBgSolidActive:kr(r,.95),colorBgLayout:ts(n,4),colorBgContainer:ts(n,0),colorBgElevated:ts(n,0),colorBgSpotlight:kr(r,.85),colorBgBlur:"transparent",colorBorder:ts(n,15),colorBorderSecondary:ts(n,6)}};function yz(e){ll.pink=ll.magenta,iv.pink=iv.magenta;const t=Object.keys(l2).map(n=>{const r=e[n]===ll[n]?iv[n]:lc(e[n]);return Array.from({length:10},()=>1).reduce((o,a,i)=>(o[`${n}-${i+1}`]=r[i],o[`${n}${i+1}`]=r[i],o),{})}).reduce((n,r)=>(n=Object.assign(Object.assign({},n),r),n),{});return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e),t),cz(e,{generateColorPalettes:gz,generateNeutralColorPalettes:hz})),vz(e.fontSize)),pz(e)),fz(e)),dz(e))}const u2=ig(yz),wg={token:ic,override:{override:ic},hashed:!0},d2=B.createContext(wg),sc="ant",Lf="anticon",bz=["outlined","borderless","filled","underlined"],Cz=(e,t)=>t||(e?`${sc}-${e}`:sc),lt=s.createContext({getPrefixCls:Cz,iconPrefixCls:Lf}),{Consumer:aY}=lt,TC={};function Rr(e){const t=s.useContext(lt),{getPrefixCls:n,direction:r,getPopupContainer:o}=t,a=t[e];return Object.assign(Object.assign({classNames:TC,styles:TC},a),{getPrefixCls:n,direction:r,getPopupContainer:o})}const Sz=`-ant-${Date.now()}-${Math.random()}`;function xz(e,t){const n={},r=(i,l)=>{let c=i.clone();return c=(l==null?void 0:l(c))||c,c.toRgbString()},o=(i,l)=>{const c=new zt(i),u=lc(c.toRgbString());n[`${l}-color`]=r(c),n[`${l}-color-disabled`]=u[1],n[`${l}-color-hover`]=u[4],n[`${l}-color-active`]=u[6],n[`${l}-color-outline`]=c.clone().setA(.2).toRgbString(),n[`${l}-color-deprecated-bg`]=u[0],n[`${l}-color-deprecated-border`]=u[2]};if(t.primaryColor){o(t.primaryColor,"primary");const i=new zt(t.primaryColor),l=lc(i.toRgbString());l.forEach((u,d)=>{n[`primary-${d+1}`]=u}),n["primary-color-deprecated-l-35"]=r(i,u=>u.lighten(35)),n["primary-color-deprecated-l-20"]=r(i,u=>u.lighten(20)),n["primary-color-deprecated-t-20"]=r(i,u=>u.tint(20)),n["primary-color-deprecated-t-50"]=r(i,u=>u.tint(50)),n["primary-color-deprecated-f-12"]=r(i,u=>u.setA(u.a*.12));const c=new zt(l[0]);n["primary-color-active-deprecated-f-30"]=r(c,u=>u.setA(u.a*.3)),n["primary-color-active-deprecated-d-02"]=r(c,u=>u.darken(2))}return t.successColor&&o(t.successColor,"success"),t.warningColor&&o(t.warningColor,"warning"),t.errorColor&&o(t.errorColor,"error"),t.infoColor&&o(t.infoColor,"info"),` + :root { + ${Object.keys(n).map(i=>`--${e}-${i}: ${n[i]};`).join(` +`)} + } + `.trim()}function wz(e,t){const n=xz(e,t);Bn()&&Xo(n,`${Sz}-dynamic-theme`)}const bo=s.createContext(!1),f2=({children:e,disabled:t})=>{const n=s.useContext(bo);return s.createElement(bo.Provider,{value:t??n},e)},$l=s.createContext(void 0),$z=({children:e,size:t})=>{const n=s.useContext($l);return s.createElement($l.Provider,{value:t||n},e)};function Ez(){const e=s.useContext(bo),t=s.useContext($l);return{componentDisabled:e,componentSize:t}}var m2=vn(function e(){mn(this,e)}),v2="CALC_UNIT",Oz=new RegExp(v2,"g");function lv(e){return typeof e=="number"?"".concat(e).concat(v2):e}var Rz=function(e){Zr(n,e);var t=eo(n);function n(r,o){var a;mn(this,n),a=t.call(this),D(Me(a),"result",""),D(Me(a),"unitlessCssVar",void 0),D(Me(a),"lowPriority",void 0);var i=We(r);return a.unitlessCssVar=o,r instanceof n?a.result="(".concat(r.result,")"):i==="number"?a.result=lv(r):i==="string"&&(a.result=r),a}return vn(n,[{key:"add",value:function(o){return o instanceof n?this.result="".concat(this.result," + ").concat(o.getResult()):(typeof o=="number"||typeof o=="string")&&(this.result="".concat(this.result," + ").concat(lv(o))),this.lowPriority=!0,this}},{key:"sub",value:function(o){return o instanceof n?this.result="".concat(this.result," - ").concat(o.getResult()):(typeof o=="number"||typeof o=="string")&&(this.result="".concat(this.result," - ").concat(lv(o))),this.lowPriority=!0,this}},{key:"mul",value:function(o){return this.lowPriority&&(this.result="(".concat(this.result,")")),o instanceof n?this.result="".concat(this.result," * ").concat(o.getResult(!0)):(typeof o=="number"||typeof o=="string")&&(this.result="".concat(this.result," * ").concat(o)),this.lowPriority=!1,this}},{key:"div",value:function(o){return this.lowPriority&&(this.result="(".concat(this.result,")")),o instanceof n?this.result="".concat(this.result," / ").concat(o.getResult(!0)):(typeof o=="number"||typeof o=="string")&&(this.result="".concat(this.result," / ").concat(o)),this.lowPriority=!1,this}},{key:"getResult",value:function(o){return this.lowPriority||o?"(".concat(this.result,")"):this.result}},{key:"equal",value:function(o){var a=this,i=o||{},l=i.unit,c=!0;return typeof l=="boolean"?c=l:Array.from(this.unitlessCssVar).some(function(u){return a.result.includes(u)})&&(c=!1),this.result=this.result.replace(Oz,c?"px":""),typeof this.lowPriority<"u"?"calc(".concat(this.result,")"):this.result}}]),n}(m2),Pz=function(e){Zr(n,e);var t=eo(n);function n(r){var o;return mn(this,n),o=t.call(this),D(Me(o),"result",0),r instanceof n?o.result=r.result:typeof r=="number"&&(o.result=r),o}return vn(n,[{key:"add",value:function(o){return o instanceof n?this.result+=o.result:typeof o=="number"&&(this.result+=o),this}},{key:"sub",value:function(o){return o instanceof n?this.result-=o.result:typeof o=="number"&&(this.result-=o),this}},{key:"mul",value:function(o){return o instanceof n?this.result*=o.result:typeof o=="number"&&(this.result*=o),this}},{key:"div",value:function(o){return o instanceof n?this.result/=o.result:typeof o=="number"&&(this.result/=o),this}},{key:"equal",value:function(){return this.result}}]),n}(m2),Iz=function(t,n){var r=t==="css"?Rz:Pz;return function(o){return new r(o,n)}},MC=function(t,n){return"".concat([n,t.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1-$2").replace(/([a-z])([A-Z])/g,"$1-$2")].filter(Boolean).join("-"))};function Vt(e){var t=s.useRef();t.current=e;var n=s.useCallback(function(){for(var r,o=arguments.length,a=new Array(o),i=0;i1e4){var r=Date.now();this.lastAccessBeat.forEach(function(o,a){r-o>_z&&(n.map.delete(a),n.lastAccessBeat.delete(a))}),this.accessBeat=0}}}]),e}(),LC=new zz;function jz(e,t){return B.useMemo(function(){var n=LC.get(t);if(n)return n;var r=e();return LC.set(t,r),r},t)}var Lz=function(){return{}};function Dz(e){var t=e.useCSP,n=t===void 0?Lz:t,r=e.useToken,o=e.usePrefix,a=e.getResetStyles,i=e.getCommonStyle,l=e.getCompUnitless;function c(m,v,p,b){var h=Array.isArray(m)?m[0]:m;function g(O){return"".concat(String(h)).concat(O.slice(0,1).toUpperCase()).concat(O.slice(1))}var y=(b==null?void 0:b.unitless)||{},C=typeof l=="function"?l(m):{},x=k(k({},C),{},D({},g("zIndexPopup"),!0));Object.keys(y).forEach(function(O){x[g(O)]=y[O]});var S=k(k({},b),{},{unitless:x,prefixToken:g}),w=d(m,v,p,S),E=u(h,p,S);return function(O){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:O,R=w(O,$),I=ee(R,2),N=I[1],T=E($),P=ee(T,2),M=P[0],_=P[1];return[M,N,_]}}function u(m,v,p){var b=p.unitless,h=p.injectStyle,g=h===void 0?!0:h,y=p.prefixToken,C=p.ignore,x=function(E){var O=E.rootCls,$=E.cssVar,R=$===void 0?{}:$,I=r(),N=I.realToken;return G4({path:[m],prefix:R.prefix,key:R.key,unitless:b,ignore:C,token:N,scope:O},function(){var T=jC(m,N,v),P=_C(m,N,T,{deprecatedTokens:p==null?void 0:p.deprecatedTokens});return Object.keys(T).forEach(function(M){P[y(M)]=P[M],delete P[M]}),P}),null},S=function(E){var O=r(),$=O.cssVar;return[function(R){return g&&$?B.createElement(B.Fragment,null,B.createElement(x,{rootCls:E,cssVar:$,component:m}),R):R},$==null?void 0:$.key]};return S}function d(m,v,p){var b=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},h=Array.isArray(m)?m:[m,m],g=ee(h,1),y=g[0],C=h.join("-"),x=e.layer||{name:"antd"};return function(S){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:S,E=r(),O=E.theme,$=E.realToken,R=E.hashId,I=E.token,N=E.cssVar,T=o(),P=T.rootPrefixCls,M=T.iconPrefixCls,_=n(),z=N?"css":"js",j=jz(function(){var V=new Set;return N&&Object.keys(b.unitless||{}).forEach(function(K){V.add(Ku(K,N.prefix)),V.add(Ku(K,MC(y,N.prefix)))}),Iz(z,V)},[z,y,N==null?void 0:N.prefix]),L=Mz(z),F=L.max,W=L.min,H={theme:O,token:I,hashId:R,nonce:function(){return _.nonce},clientOnly:b.clientOnly,layer:x,order:b.order||-999};typeof a=="function"&&dg(k(k({},H),{},{clientOnly:!1,path:["Shared",P]}),function(){return a(I,{prefix:{rootPrefixCls:P,iconPrefixCls:M},csp:_})});var A=dg(k(k({},H),{},{path:[C,S,M]}),function(){if(b.injectStyle===!1)return[];var V=Tz(I),K=V.token,Y=V.flush,re=jC(y,$,p),J=".".concat(S),ae=_C(y,$,re,{deprecatedTokens:b.deprecatedTokens});N&&re&&We(re)==="object"&&Object.keys(re).forEach(function(X){re[X]="var(".concat(Ku(X,MC(y,N.prefix)),")")});var le=Rt(K,{componentCls:J,prefixCls:S,iconCls:".".concat(M),antCls:".".concat(P),calc:j,max:F,min:W},N?re:ae),te=v(le,{hashId:R,prefixCls:S,rootPrefixCls:P,iconPrefixCls:M});Y(y,ae);var q=typeof i=="function"?i(le,S,w,b.resetFont):null;return[b.resetStyle===!1?null:q,te]});return[A,R]}}function f(m,v,p){var b=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},h=d(m,v,p,k({resetStyle:!1,order:-998},b)),g=function(C){var x=C.prefixCls,S=C.rootCls,w=S===void 0?x:S;return h(x,w),null};return g}return{genStyleHooks:c,genSubStyleComponent:f,genComponentStyleHook:d}}const _a=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"],Bz="5.26.3";function cv(e){return e>=0&&e<=255}function ms(e,t){const{r:n,g:r,b:o,a}=new zt(e).toRgb();if(a<1)return e;const{r:i,g:l,b:c}=new zt(t).toRgb();for(let u=.01;u<=1;u+=.01){const d=Math.round((n-i*(1-u))/u),f=Math.round((r-l*(1-u))/u),m=Math.round((o-c*(1-u))/u);if(cv(d)&&cv(f)&&cv(m))return new zt({r:d,g:f,b:m,a:Math.round(u*100)/100}).toRgbString()}return new zt({r:n,g:r,b:o,a:1}).toRgbString()}var kz=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{delete r[m]});const o=Object.assign(Object.assign({},n),r),a=480,i=576,l=768,c=992,u=1200,d=1600;if(o.motion===!1){const m="0s";o.motionDurationFast=m,o.motionDurationMid=m,o.motionDurationSlow=m}return Object.assign(Object.assign(Object.assign({},o),{colorFillContent:o.colorFillSecondary,colorFillContentHover:o.colorFill,colorFillAlter:o.colorFillQuaternary,colorBgContainerDisabled:o.colorFillTertiary,colorBorderBg:o.colorBgContainer,colorSplit:ms(o.colorBorderSecondary,o.colorBgContainer),colorTextPlaceholder:o.colorTextQuaternary,colorTextDisabled:o.colorTextQuaternary,colorTextHeading:o.colorText,colorTextLabel:o.colorTextSecondary,colorTextDescription:o.colorTextTertiary,colorTextLightSolid:o.colorWhite,colorHighlight:o.colorError,colorBgTextHover:o.colorFillSecondary,colorBgTextActive:o.colorFill,colorIcon:o.colorTextTertiary,colorIconHover:o.colorText,colorErrorOutline:ms(o.colorErrorBg,o.colorBgContainer),colorWarningOutline:ms(o.colorWarningBg,o.colorBgContainer),fontSizeIcon:o.fontSizeSM,lineWidthFocus:o.lineWidth*3,lineWidth:o.lineWidth,controlOutlineWidth:o.lineWidth*2,controlInteractiveSize:o.controlHeight/2,controlItemBgHover:o.colorFillTertiary,controlItemBgActive:o.colorPrimaryBg,controlItemBgActiveHover:o.colorPrimaryBgHover,controlItemBgActiveDisabled:o.colorFill,controlTmpOutline:o.colorFillQuaternary,controlOutline:ms(o.colorPrimaryBg,o.colorBgContainer),lineType:o.lineType,borderRadius:o.borderRadius,borderRadiusXS:o.borderRadiusXS,borderRadiusSM:o.borderRadiusSM,borderRadiusLG:o.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:"none",linkHoverDecoration:"none",linkFocusDecoration:"none",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:o.sizeXXS,paddingXS:o.sizeXS,paddingSM:o.sizeSM,padding:o.size,paddingMD:o.sizeMD,paddingLG:o.sizeLG,paddingXL:o.sizeXL,paddingContentHorizontalLG:o.sizeLG,paddingContentVerticalLG:o.sizeMS,paddingContentHorizontal:o.sizeMS,paddingContentVertical:o.sizeSM,paddingContentHorizontalSM:o.size,paddingContentVerticalSM:o.sizeXS,marginXXS:o.sizeXXS,marginXS:o.sizeXS,marginSM:o.sizeSM,margin:o.size,marginMD:o.sizeMD,marginLG:o.sizeLG,marginXL:o.sizeXL,marginXXL:o.sizeXXL,boxShadow:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowSecondary:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTertiary:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,screenXS:a,screenXSMin:a,screenXSMax:i-1,screenSM:i,screenSMMin:i,screenSMMax:l-1,screenMD:l,screenMDMin:l,screenMDMax:c-1,screenLG:c,screenLGMin:c,screenLGMax:u-1,screenXL:u,screenXLMin:u,screenXLMax:d-1,screenXXL:d,screenXXLMin:d,boxShadowPopoverArrow:"2px 2px 5px rgba(0, 0, 0, 0.05)",boxShadowCard:` + 0 1px 2px -2px ${new zt("rgba(0, 0, 0, 0.16)").toRgbString()}, + 0 3px 6px 0 ${new zt("rgba(0, 0, 0, 0.12)").toRgbString()}, + 0 5px 12px 4px ${new zt("rgba(0, 0, 0, 0.09)").toRgbString()} + `,boxShadowDrawerRight:` + -6px 0 16px 0 rgba(0, 0, 0, 0.08), + -3px 0 6px -4px rgba(0, 0, 0, 0.12), + -9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerLeft:` + 6px 0 16px 0 rgba(0, 0, 0, 0.08), + 3px 0 6px -4px rgba(0, 0, 0, 0.12), + 9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerUp:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerDown:` + 0 -6px 16px 0 rgba(0, 0, 0, 0.08), + 0 -3px 6px -4px rgba(0, 0, 0, 0.12), + 0 -9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTabsOverflowLeft:"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowRight:"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowTop:"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowBottom:"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)"}),r)}var DC=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const r=n.getDerivativeToken(e),{override:o}=t,a=DC(t,["override"]);let i=Object.assign(Object.assign({},r),{override:o});return i=g2(i),a&&Object.entries(a).forEach(([l,c])=>{const{theme:u}=c,d=DC(c,["theme"]);let f=d;u&&(f=y2(Object.assign(Object.assign({},i),d),{override:d},u)),i[l]=f}),i};function Kn(){const{token:e,hashed:t,theme:n,override:r,cssVar:o}=B.useContext(d2),a=`${Bz}-${t||""}`,i=n||u2,[l,c,u]=b4(i,[ic,e],{salt:a,override:r,getComputedToken:y2,formatToken:g2,cssVar:o&&{prefix:o.prefix,key:o.key,unitless:h2,ignore:Az,preserve:Fz}});return[i,u,t?c:"",l,o]}const Bo={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},Jt=(e,t=!1)=>({boxSizing:"border-box",margin:0,padding:0,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,listStyle:"none",fontFamily:t?"inherit":e.fontFamily}),Nc=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block"}}),Co=()=>({"&::before":{display:"table",content:'""'},"&::after":{display:"table",clear:"both",content:'""'}}),Hz=e=>({a:{color:e.colorLink,textDecoration:e.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:`color ${e.motionDurationSlow}`,"-webkit-text-decoration-skip":"objects","&:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive},"&:active, &:hover":{textDecoration:e.linkHoverDecoration,outline:0},"&:focus":{textDecoration:e.linkFocusDecoration,outline:0},"&[disabled]":{color:e.colorTextDisabled,cursor:"not-allowed"}}}),Vz=(e,t,n,r)=>{const o=`[class^="${t}"], [class*=" ${t}"]`,a=n?`.${n}`:o,i={boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}};let l={};return r!==!1&&(l={fontFamily:e.fontFamily,fontSize:e.fontSize}),{[a]:Object.assign(Object.assign(Object.assign({},l),i),{[o]:i})}},ko=(e,t)=>({outline:`${U(e.lineWidthFocus)} solid ${e.colorPrimaryBorder}`,outlineOffset:t??1,transition:"outline-offset 0s, outline 0s"}),ea=(e,t)=>({"&:focus-visible":Object.assign({},ko(e,t))}),b2=e=>({[`.${e}`]:Object.assign(Object.assign({},Nc()),{[`.${e} .${e}-icon`]:{display:"block"}})}),j0=e=>Object.assign(Object.assign({color:e.colorLink,textDecoration:e.linkDecoration,outline:"none",cursor:"pointer",transition:`all ${e.motionDurationSlow}`,border:0,padding:0,background:"none",userSelect:"none"},ea(e)),{"&:focus, &:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive}}),{genStyleHooks:Wt,genComponentStyleHook:Wz,genSubStyleComponent:Tc}=Dz({usePrefix:()=>{const{getPrefixCls:e,iconPrefixCls:t}=s.useContext(lt);return{rootPrefixCls:e(),iconPrefixCls:t}},useToken:()=>{const[e,t,n,r,o]=Kn();return{theme:e,realToken:t,hashId:n,token:r,cssVar:o}},useCSP:()=>{const{csp:e}=s.useContext(lt);return e??{}},getResetStyles:(e,t)=>{var n;const r=Hz(e);return[r,{"&":r},b2((n=t==null?void 0:t.prefix.iconPrefixCls)!==null&&n!==void 0?n:Lf)]},getCommonStyle:Vz,getCompUnitless:()=>h2});function C2(e,t){return _a.reduce((n,r)=>{const o=e[`${r}1`],a=e[`${r}3`],i=e[`${r}6`],l=e[`${r}7`];return Object.assign(Object.assign({},n),t(r,{lightColor:o,lightBorderColor:a,darkColor:i,textColor:l}))},{})}const Kz=(e,t)=>{const[n,r]=Kn();return dg({token:r,hashId:"",path:["ant-design-icons",e],nonce:()=>t==null?void 0:t.nonce,layer:{name:"antd"}},()=>[b2(e)])},Uz=Object.assign({},xc),{useId:BC}=Uz,Gz=()=>"",qz=typeof BC>"u"?Gz:BC;function Xz(e,t,n){var r;Si();const o=e||{},a=o.inherit===!1||!t?Object.assign(Object.assign({},wg),{hashed:(r=t==null?void 0:t.hashed)!==null&&r!==void 0?r:wg.hashed,cssVar:t==null?void 0:t.cssVar}):t,i=qz();return bi(()=>{var l,c;if(!e)return t;const u=Object.assign({},a.components);Object.keys(e.components||{}).forEach(m=>{u[m]=Object.assign(Object.assign({},u[m]),e.components[m])});const d=`css-var-${i.replace(/:/g,"")}`,f=((l=o.cssVar)!==null&&l!==void 0?l:a.cssVar)&&Object.assign(Object.assign(Object.assign({prefix:n==null?void 0:n.prefixCls},typeof a.cssVar=="object"?a.cssVar:{}),typeof o.cssVar=="object"?o.cssVar:{}),{key:typeof o.cssVar=="object"&&((c=o.cssVar)===null||c===void 0?void 0:c.key)||d});return Object.assign(Object.assign(Object.assign({},a),o),{token:Object.assign(Object.assign({},a.token),o.token),components:u,cssVar:f})},[o,a],(l,c)=>l.some((u,d)=>{const f=c[d];return!Do(u,f,!0)}))}var Yz=["children"],S2=s.createContext({});function Qz(e){var t=e.children,n=ut(e,Yz);return s.createElement(S2.Provider,{value:n},t)}var Jz=function(e){Zr(n,e);var t=eo(n);function n(){return mn(this,n),t.apply(this,arguments)}return vn(n,[{key:"render",value:function(){return this.props.children}}]),n}(s.Component);function Zz(e){var t=s.useReducer(function(l){return l+1},0),n=ee(t,2),r=n[1],o=s.useRef(e),a=Vt(function(){return o.current}),i=Vt(function(l){o.current=typeof l=="function"?l(o.current):l,r()});return[a,i]}var sa="none",yu="appear",bu="enter",Cu="leave",kC="none",uo="prepare",Ji="start",Zi="active",L0="end",x2="prepared";function AC(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit".concat(e)]="webkit".concat(t),n["Moz".concat(e)]="moz".concat(t),n["ms".concat(e)]="MS".concat(t),n["O".concat(e)]="o".concat(t.toLowerCase()),n}function e3(e,t){var n={animationend:AC("Animation","AnimationEnd"),transitionend:AC("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete n.animationend.animation,"TransitionEvent"in t||delete n.transitionend.transition),n}var t3=e3(Bn(),typeof window<"u"?window:{}),w2={};if(Bn()){var n3=document.createElement("div");w2=n3.style}var Su={};function $2(e){if(Su[e])return Su[e];var t=t3[e];if(t)for(var n=Object.keys(t),r=n.length,o=0;o1&&arguments[1]!==void 0?arguments[1]:2;t();var a=Lt(function(){o<=1?r({isCanceled:function(){return a!==e.current}}):n(r,o-1)});e.current=a}return s.useEffect(function(){return function(){t()}},[]),[n,t]};var a3=[uo,Ji,Zi,L0],i3=[uo,x2],I2=!1,l3=!0;function N2(e){return e===Zi||e===L0}const s3=function(e,t,n){var r=El(kC),o=ee(r,2),a=o[0],i=o[1],l=o3(),c=ee(l,2),u=c[0],d=c[1];function f(){i(uo,!0)}var m=t?i3:a3;return P2(function(){if(a!==kC&&a!==L0){var v=m.indexOf(a),p=m[v+1],b=n(a);b===I2?i(p,!0):p&&u(function(h){function g(){h.isCanceled()||i(p,!0)}b===!0?g():Promise.resolve(b).then(g)})}},[e,a]),s.useEffect(function(){return function(){d()}},[]),[f,a]};function c3(e,t,n,r){var o=r.motionEnter,a=o===void 0?!0:o,i=r.motionAppear,l=i===void 0?!0:i,c=r.motionLeave,u=c===void 0?!0:c,d=r.motionDeadline,f=r.motionLeaveImmediately,m=r.onAppearPrepare,v=r.onEnterPrepare,p=r.onLeavePrepare,b=r.onAppearStart,h=r.onEnterStart,g=r.onLeaveStart,y=r.onAppearActive,C=r.onEnterActive,x=r.onLeaveActive,S=r.onAppearEnd,w=r.onEnterEnd,E=r.onLeaveEnd,O=r.onVisibleChanged,$=El(),R=ee($,2),I=R[0],N=R[1],T=Zz(sa),P=ee(T,2),M=P[0],_=P[1],z=El(null),j=ee(z,2),L=j[0],F=j[1],W=M(),H=s.useRef(!1),A=s.useRef(null);function V(){return n()}var K=s.useRef(!1);function Y(){_(sa),F(null,!0)}var re=Vt(function(oe){var se=M();if(se!==sa){var ye=V();if(!(oe&&!oe.deadline&&oe.target!==ye)){var ce=K.current,we;se===yu&&ce?we=S==null?void 0:S(ye,oe):se===bu&&ce?we=w==null?void 0:w(ye,oe):se===Cu&&ce&&(we=E==null?void 0:E(ye,oe)),ce&&we!==!1&&Y()}}}),J=r3(re),ae=ee(J,1),le=ae[0],te=function(se){switch(se){case yu:return D(D(D({},uo,m),Ji,b),Zi,y);case bu:return D(D(D({},uo,v),Ji,h),Zi,C);case Cu:return D(D(D({},uo,p),Ji,g),Zi,x);default:return{}}},q=s.useMemo(function(){return te(W)},[W]),X=s3(W,!e,function(oe){if(oe===uo){var se=q[uo];return se?se(V()):I2}if(ne in q){var ye;F(((ye=q[ne])===null||ye===void 0?void 0:ye.call(q,V(),null))||null)}return ne===Zi&&W!==sa&&(le(V()),d>0&&(clearTimeout(A.current),A.current=setTimeout(function(){re({deadline:!0})},d))),ne===x2&&Y(),l3}),Q=ee(X,2),Z=Q[0],ne=Q[1],ie=N2(ne);K.current=ie;var fe=s.useRef(null);P2(function(){if(!(H.current&&fe.current===t)){N(t);var oe=H.current;H.current=!0;var se;!oe&&t&&l&&(se=yu),oe&&t&&a&&(se=bu),(oe&&!t&&u||!oe&&f&&!t&&u)&&(se=Cu);var ye=te(se);se&&(e||ye[uo])?(_(se),Z()):_(sa),fe.current=t}},[t]),s.useEffect(function(){(W===yu&&!l||W===bu&&!a||W===Cu&&!u)&&_(sa)},[l,a,u]),s.useEffect(function(){return function(){H.current=!1,clearTimeout(A.current)}},[]);var $e=s.useRef(!1);s.useEffect(function(){I&&($e.current=!0),I!==void 0&&W===sa&&(($e.current||I)&&(O==null||O(I)),$e.current=!0)},[I,W]);var Se=L;return q[uo]&&ne===Ji&&(Se=k({transition:"none"},Se)),[W,ne,Se,I??t]}function u3(e){var t=e;We(e)==="object"&&(t=e.transitionSupport);function n(o,a){return!!(o.motionName&&t&&a!==!1)}var r=s.forwardRef(function(o,a){var i=o.visible,l=i===void 0?!0:i,c=o.removeOnLeave,u=c===void 0?!0:c,d=o.forceRender,f=o.children,m=o.motionName,v=o.leavedClassName,p=o.eventProps,b=s.useContext(S2),h=b.motion,g=n(o,h),y=s.useRef(),C=s.useRef();function x(){try{return y.current instanceof HTMLElement?y.current:Wu(C.current)}catch{return null}}var S=c3(g,l,x,o),w=ee(S,4),E=w[0],O=w[1],$=w[2],R=w[3],I=s.useRef(R);R&&(I.current=!0);var N=s.useCallback(function(j){y.current=j,ec(a,j)},[a]),T,P=k(k({},p),{},{visible:l});if(!f)T=null;else if(E===sa)R?T=f(k({},P),N):!u&&I.current&&v?T=f(k(k({},P),{},{className:v}),N):d||!u&&!v?T=f(k(k({},P),{},{style:{display:"none"}}),N):T=null;else{var M;O===uo?M="prepare":N2(O)?M="active":O===Ji&&(M="start");var _=VC(m,"".concat(E,"-").concat(M));T=f(k(k({},P),{},{className:G(VC(m,E),D(D({},_,_&&M),m,typeof m=="string")),style:$}),N)}if(s.isValidElement(T)&&Lo(T)){var z=Ci(T);z||(T=s.cloneElement(T,{ref:N}))}return s.createElement(Jz,{ref:C},T)});return r.displayName="CSSMotion",r}const to=u3(R2);var Eg="add",Og="keep",Rg="remove",uv="removed";function d3(e){var t;return e&&We(e)==="object"&&"key"in e?t=e:t={key:e},k(k({},t),{},{key:String(t.key)})}function Pg(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return e.map(d3)}function f3(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=[],r=0,o=t.length,a=Pg(e),i=Pg(t);a.forEach(function(u){for(var d=!1,f=r;f1});return c.forEach(function(u){n=n.filter(function(d){var f=d.key,m=d.status;return f!==u||m!==Rg}),n.forEach(function(d){d.key===u&&(d.status=Og)})}),n}var m3=["component","children","onVisibleChanged","onAllRemoved"],v3=["status"],p3=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearPrepare","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];function g3(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:to,n=function(r){Zr(a,r);var o=eo(a);function a(){var i;mn(this,a);for(var l=arguments.length,c=new Array(l),u=0;unull;var b3=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);ot.endsWith("Color"))}const w3=e=>{const{prefixCls:t,iconPrefixCls:n,theme:r,holderRender:o}=e;t!==void 0&&(jd=t),n!==void 0&&(M2=n),"holderRender"in e&&(z2=o),r&&(x3(r)?wz(Zu(),r):_2=r)},j2=()=>({getPrefixCls:(e,t)=>t||(e?`${Zu()}-${e}`:Zu()),getIconPrefixCls:S3,getRootPrefixCls:()=>jd||Zu(),getTheme:()=>_2,holderRender:z2}),$3=e=>{const{children:t,csp:n,autoInsertSpaceInButton:r,alert:o,anchor:a,form:i,locale:l,componentSize:c,direction:u,space:d,splitter:f,virtual:m,dropdownMatchSelectWidth:v,popupMatchSelectWidth:p,popupOverflow:b,legacyLocale:h,parentContext:g,iconPrefixCls:y,theme:C,componentDisabled:x,segmented:S,statistic:w,spin:E,calendar:O,carousel:$,cascader:R,collapse:I,typography:N,checkbox:T,descriptions:P,divider:M,drawer:_,skeleton:z,steps:j,image:L,layout:F,list:W,mentions:H,modal:A,progress:V,result:K,slider:Y,breadcrumb:re,menu:J,pagination:ae,input:le,textArea:te,empty:q,badge:X,radio:Q,rate:Z,switch:ne,transfer:ie,avatar:fe,message:$e,tag:Se,table:oe,card:se,tabs:ye,timeline:ce,timePicker:we,upload:Oe,notification:Le,tree:je,colorPicker:xe,datePicker:Pe,rangePicker:Ce,flex:ve,wave:Ee,dropdown:de,warning:ge,tour:me,tooltip:ue,popover:Te,popconfirm:Qe,floatButtonGroup:pt,variant:gt,inputNumber:ft,treeSelect:Bt}=e,xt=s.useCallback((He,et)=>{const{prefixCls:Ue}=e;if(et)return et;const Ve=Ue||g.getPrefixCls("");return He?`${Ve}-${He}`:Ve},[g.getPrefixCls,e.prefixCls]),st=y||g.iconPrefixCls||Lf,at=n||g.csp;Kz(st,at);const Ke=Xz(C,g.theme,{prefixCls:xt("")}),Fe={csp:at,autoInsertSpaceInButton:r,alert:o,anchor:a,locale:l||h,direction:u,space:d,splitter:f,virtual:m,popupMatchSelectWidth:p??v,popupOverflow:b,getPrefixCls:xt,iconPrefixCls:st,theme:Ke,segmented:S,statistic:w,spin:E,calendar:O,carousel:$,cascader:R,collapse:I,typography:N,checkbox:T,descriptions:P,divider:M,drawer:_,skeleton:z,steps:j,image:L,input:le,textArea:te,layout:F,list:W,mentions:H,modal:A,progress:V,result:K,slider:Y,breadcrumb:re,menu:J,pagination:ae,empty:q,badge:X,radio:Q,rate:Z,switch:ne,transfer:ie,avatar:fe,message:$e,tag:Se,table:oe,card:se,tabs:ye,timeline:ce,timePicker:we,upload:Oe,notification:Le,tree:je,colorPicker:xe,datePicker:Pe,rangePicker:Ce,flex:ve,wave:Ee,dropdown:de,warning:ge,tour:me,tooltip:ue,popover:Te,popconfirm:Qe,floatButtonGroup:pt,variant:gt,inputNumber:ft,treeSelect:Bt},Re=Object.assign({},g);Object.keys(Fe).forEach(He=>{Fe[He]!==void 0&&(Re[He]=Fe[He])}),C3.forEach(He=>{const et=e[He];et&&(Re[He]=et)}),typeof r<"u"&&(Re.button=Object.assign({autoInsertSpace:r},Re.button));const qe=bi(()=>Re,Re,(He,et)=>{const Ue=Object.keys(He),Ve=Object.keys(et);return Ue.length!==Ve.length||Ue.some(tt=>He[tt]!==et[tt])}),{layer:Je}=s.useContext(Ic),Ie=s.useMemo(()=>({prefixCls:st,csp:at,layer:Je?"antd":void 0}),[st,at,Je]);let Ne=s.createElement(s.Fragment,null,s.createElement(y3,{dropdownMatchSelectWidth:v}),t);const Xe=s.useMemo(()=>{var He,et,Ue,Ve;return Qi(((He=yo.Form)===null||He===void 0?void 0:He.defaultValidateMessages)||{},((Ue=(et=qe.locale)===null||et===void 0?void 0:et.Form)===null||Ue===void 0?void 0:Ue.defaultValidateMessages)||{},((Ve=qe.form)===null||Ve===void 0?void 0:Ve.validateMessages)||{},(i==null?void 0:i.validateMessages)||{})},[qe,i==null?void 0:i.validateMessages]);Object.keys(Xe).length>0&&(Ne=s.createElement(Z4.Provider,{value:Xe},Ne)),l&&(Ne=s.createElement(oz,{locale:l,_ANT_MARK__:rz},Ne)),Ne=s.createElement(_0.Provider,{value:Ie},Ne),c&&(Ne=s.createElement($z,{size:c},Ne)),Ne=s.createElement(h3,null,Ne);const Ge=s.useMemo(()=>{const He=Ke||{},{algorithm:et,token:Ue,components:Ve,cssVar:tt}=He,dt=b3(He,["algorithm","token","components","cssVar"]),St=et&&(!Array.isArray(et)||et.length>0)?ig(et):u2,Et={};Object.entries(Ve||{}).forEach(([wt,Tt])=>{const It=Object.assign({},Tt);"algorithm"in It&&(It.algorithm===!0?It.theme=St:(Array.isArray(It.algorithm)||typeof It.algorithm=="function")&&(It.theme=ig(It.algorithm)),delete It.algorithm),Et[wt]=It});const Pt=Object.assign(Object.assign({},ic),Ue);return Object.assign(Object.assign({},dt),{theme:St,token:Pt,components:Et,override:Object.assign({override:Pt},Et),cssVar:tt})},[Ke]);return C&&(Ne=s.createElement(d2.Provider,{value:Ge},Ne)),qe.warning&&(Ne=s.createElement(J4.Provider,{value:qe.warning},Ne)),x!==void 0&&(Ne=s.createElement(f2,{disabled:x},Ne)),s.createElement(lt.Provider,{value:qe},Ne)},ra=e=>{const t=s.useContext(lt),n=s.useContext(z0);return s.createElement($3,Object.assign({parentContext:t,legacyLocale:n},e))};ra.ConfigContext=lt;ra.SizeContext=$l;ra.config=w3;ra.useConfig=Ez;Object.defineProperty(ra,"SizeContext",{get:()=>$l});var E3={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"};function L2(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}function O3(e){return L2(e)instanceof ShadowRoot}function Ld(e){return O3(e)?L2(e):null}function R3(e){return e.replace(/-(.)/g,function(t,n){return n.toUpperCase()})}function P3(e,t){rn(e,"[@ant-design/icons] ".concat(t))}function KC(e){return We(e)==="object"&&typeof e.name=="string"&&typeof e.theme=="string"&&(We(e.icon)==="object"||typeof e.icon=="function")}function UC(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys(e).reduce(function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:delete t[n],t[R3(n)]=r}return t},{})}function Ig(e,t,n){return n?B.createElement(e.tag,k(k({key:t},UC(e.attrs)),n),(e.children||[]).map(function(r,o){return Ig(r,"".concat(t,"-").concat(e.tag,"-").concat(o))})):B.createElement(e.tag,k({key:t},UC(e.attrs)),(e.children||[]).map(function(r,o){return Ig(r,"".concat(t,"-").concat(e.tag,"-").concat(o))}))}function D2(e){return lc(e)[0]}function B2(e){return e?Array.isArray(e)?e:[e]:[]}var I3=` +.anticon { + display: inline-flex; + align-items: center; + color: inherit; + font-style: normal; + line-height: 0; + text-align: center; + text-transform: none; + vertical-align: -0.125em; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.anticon > * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`,N3=function(t){var n=s.useContext(_0),r=n.csp,o=n.prefixCls,a=n.layer,i=I3;o&&(i=i.replace(/anticon/g,o)),a&&(i="@layer ".concat(a,` { +`).concat(i,` +}`)),s.useEffect(function(){var l=t.current,c=Ld(l);Xo(i,"@ant-design-icons",{prepend:!a,csp:r,attachTo:c})},[])},T3=["icon","className","onClick","style","primaryColor","secondaryColor"],Ps={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};function M3(e){var t=e.primaryColor,n=e.secondaryColor;Ps.primaryColor=t,Ps.secondaryColor=n||D2(t),Ps.calculated=!!n}function _3(){return k({},Ps)}var zl=function(t){var n=t.icon,r=t.className,o=t.onClick,a=t.style,i=t.primaryColor,l=t.secondaryColor,c=ut(t,T3),u=s.useRef(),d=Ps;if(i&&(d={primaryColor:i,secondaryColor:l||D2(i)}),N3(u),P3(KC(n),"icon should be icon definiton, but got ".concat(n)),!KC(n))return null;var f=n;return f&&typeof f.icon=="function"&&(f=k(k({},f),{},{icon:f.icon(d.primaryColor,d.secondaryColor)})),Ig(f.icon,"svg-".concat(f.name),k(k({className:r,onClick:o,style:a,"data-icon":f.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},c),{},{ref:u}))};zl.displayName="IconReact";zl.getTwoToneColors=_3;zl.setTwoToneColors=M3;function k2(e){var t=B2(e),n=ee(t,2),r=n[0],o=n[1];return zl.setTwoToneColors({primaryColor:r,secondaryColor:o})}function z3(){var e=zl.getTwoToneColors();return e.calculated?[e.primaryColor,e.secondaryColor]:e.primaryColor}var j3=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];k2(wl.primary);var Ct=s.forwardRef(function(e,t){var n=e.className,r=e.icon,o=e.spin,a=e.rotate,i=e.tabIndex,l=e.onClick,c=e.twoToneColor,u=ut(e,j3),d=s.useContext(_0),f=d.prefixCls,m=f===void 0?"anticon":f,v=d.rootClassName,p=G(v,m,D(D({},"".concat(m,"-").concat(r.name),!!r.name),"".concat(m,"-spin"),!!o||r.name==="loading"),n),b=i;b===void 0&&l&&(b=-1);var h=a?{msTransform:"rotate(".concat(a,"deg)"),transform:"rotate(".concat(a,"deg)")}:void 0,g=B2(c),y=ee(g,2),C=y[0],x=y[1];return s.createElement("span",pe({role:"img","aria-label":r.name},u,{ref:t,tabIndex:b,onClick:l,className:p}),s.createElement(zl,{icon:r,primaryColor:C,secondaryColor:x,style:h}))});Ct.displayName="AntdIcon";Ct.getTwoToneColor=z3;Ct.setTwoToneColor=k2;var L3=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:E3}))},D0=s.forwardRef(L3),D3={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"}}]},name:"close-circle",theme:"filled"},B3=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:D3}))},Mc=s.forwardRef(B3),k3={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z"}}]},name:"close",theme:"outlined"},A3=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:k3}))},xi=s.forwardRef(A3),F3={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"exclamation-circle",theme:"filled"},H3=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:F3}))},Df=s.forwardRef(H3),V3={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"info-circle",theme:"filled"},W3=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:V3}))},A2=s.forwardRef(W3),K3=`accept acceptCharset accessKey action allowFullScreen allowTransparency + alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge + charSet checked classID className colSpan cols content contentEditable contextMenu + controls coords crossOrigin data dateTime default defer dir disabled download draggable + encType form formAction formEncType formMethod formNoValidate formTarget frameBorder + headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity + is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media + mediaGroup method min minLength multiple muted name noValidate nonce open + optimum pattern placeholder poster preload radioGroup readOnly rel required + reversed role rowSpan rows sandbox scope scoped scrolling seamless selected + shape size sizes span spellCheck src srcDoc srcLang srcSet start step style + summary tabIndex target title type useMap value width wmode wrap`,U3=`onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown + onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick + onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown + onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel + onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough + onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata + onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError`,G3="".concat(K3," ").concat(U3).split(/[\s\n]+/),q3="aria-",X3="data-";function GC(e,t){return e.indexOf(t)===0}function tr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n;t===!1?n={aria:!0,data:!0,attr:!0}:t===!0?n={aria:!0}:n=k({},t);var r={};return Object.keys(e).forEach(function(o){(n.aria&&(o==="role"||GC(o,q3))||n.data&&GC(o,X3)||n.attr&&G3.includes(o))&&(r[o]=e[o])}),r}function F2(e){return e&&B.isValidElement(e)&&e.type===B.Fragment}const H2=(e,t,n)=>B.isValidElement(e)?B.cloneElement(e,typeof n=="function"?n(e.props||{}):n):t;function nr(e,t){return H2(e,e,t)}function Ng(e){return e!=null&&e===e.window}const Y3=e=>{var t,n;if(typeof window>"u")return 0;let r=0;return Ng(e)?r=e.pageYOffset:e instanceof Document?r=e.documentElement.scrollTop:(e instanceof HTMLElement||e)&&(r=e.scrollTop),e&&!Ng(e)&&typeof r!="number"&&(r=(n=((t=e.ownerDocument)!==null&&t!==void 0?t:e).documentElement)===null||n===void 0?void 0:n.scrollTop),r};function Q3(e,t,n,r){const o=n-t;return e/=r/2,e<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t}function J3(e,t={}){const{getContainer:n=()=>window,callback:r,duration:o=450}=t,a=n(),i=Y3(a),l=Date.now(),c=()=>{const d=Date.now()-l,f=Q3(d>o?o:d,i,e,o);Ng(a)?a.scrollTo(window.pageXOffset,f):a instanceof Document||a.constructor.name==="HTMLDocument"?a.documentElement.scrollTop=f:a.scrollTop=f,d{const[,,,,t]=Kn();return t?`${e}-css-var`:""};var ke={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,CAPS_LOCK:20,ESC:27,SPACE:32,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,N:78,P:80,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,SEMICOLON:186,EQUALS:187,WIN_KEY:224},V2=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.style,o=e.className,a=e.duration,i=a===void 0?4.5:a,l=e.showProgress,c=e.pauseOnHover,u=c===void 0?!0:c,d=e.eventKey,f=e.content,m=e.closable,v=e.closeIcon,p=v===void 0?"x":v,b=e.props,h=e.onClick,g=e.onNoticeClose,y=e.times,C=e.hovering,x=s.useState(!1),S=ee(x,2),w=S[0],E=S[1],O=s.useState(0),$=ee(O,2),R=$[0],I=$[1],N=s.useState(0),T=ee(N,2),P=T[0],M=T[1],_=C||w,z=i>0&&l,j=function(){g(d)},L=function(K){(K.key==="Enter"||K.code==="Enter"||K.keyCode===ke.ENTER)&&j()};s.useEffect(function(){if(!_&&i>0){var V=Date.now()-P,K=setTimeout(function(){j()},i*1e3-P);return function(){u&&clearTimeout(K),M(Date.now()-V)}}},[i,_,y]),s.useEffect(function(){if(!_&&z&&(u||P===0)){var V=performance.now(),K,Y=function re(){cancelAnimationFrame(K),K=requestAnimationFrame(function(J){var ae=J+P-V,le=Math.min(ae/(i*1e3),1);I(le*100),le<1&&re()})};return Y(),function(){u&&cancelAnimationFrame(K)}}},[i,P,_,z,y]);var F=s.useMemo(function(){return We(m)==="object"&&m!==null?m:m?{closeIcon:p}:{}},[m,p]),W=tr(F,!0),H=100-(!R||R<0?0:R>100?100:R),A="".concat(n,"-notice");return s.createElement("div",pe({},b,{ref:t,className:G(A,o,D({},"".concat(A,"-closable"),m)),style:r,onMouseEnter:function(K){var Y;E(!0),b==null||(Y=b.onMouseEnter)===null||Y===void 0||Y.call(b,K)},onMouseLeave:function(K){var Y;E(!1),b==null||(Y=b.onMouseLeave)===null||Y===void 0||Y.call(b,K)},onClick:h}),s.createElement("div",{className:"".concat(A,"-content")},f),m&&s.createElement("a",pe({tabIndex:0,className:"".concat(A,"-close"),onKeyDown:L,"aria-label":"Close"},W,{onClick:function(K){K.preventDefault(),K.stopPropagation(),j()}}),F.closeIcon),z&&s.createElement("progress",{className:"".concat(A,"-progress"),max:"100",value:H},H+"%"))}),W2=B.createContext({}),Z3=function(t){var n=t.children,r=t.classNames;return B.createElement(W2.Provider,{value:{classNames:r}},n)},qC=8,XC=3,YC=16,ej=function(t){var n={offset:qC,threshold:XC,gap:YC};if(t&&We(t)==="object"){var r,o,a;n.offset=(r=t.offset)!==null&&r!==void 0?r:qC,n.threshold=(o=t.threshold)!==null&&o!==void 0?o:XC,n.gap=(a=t.gap)!==null&&a!==void 0?a:YC}return[!!t,n]},tj=["className","style","classNames","styles"],nj=function(t){var n=t.configList,r=t.placement,o=t.prefixCls,a=t.className,i=t.style,l=t.motion,c=t.onAllNoticeRemoved,u=t.onNoticeClose,d=t.stack,f=s.useContext(W2),m=f.classNames,v=s.useRef({}),p=s.useState(null),b=ee(p,2),h=b[0],g=b[1],y=s.useState([]),C=ee(y,2),x=C[0],S=C[1],w=n.map(function(_){return{config:_,key:String(_.key)}}),E=ej(d),O=ee(E,2),$=O[0],R=O[1],I=R.offset,N=R.threshold,T=R.gap,P=$&&(x.length>0||w.length<=N),M=typeof l=="function"?l(r):l;return s.useEffect(function(){$&&x.length>1&&S(function(_){return _.filter(function(z){return w.some(function(j){var L=j.key;return z===L})})})},[x,w,$]),s.useEffect(function(){var _;if($&&v.current[(_=w[w.length-1])===null||_===void 0?void 0:_.key]){var z;g(v.current[(z=w[w.length-1])===null||z===void 0?void 0:z.key])}},[w,$]),B.createElement(T2,pe({key:r,className:G(o,"".concat(o,"-").concat(r),m==null?void 0:m.list,a,D(D({},"".concat(o,"-stack"),!!$),"".concat(o,"-stack-expanded"),P)),style:i,keys:w,motionAppear:!0},M,{onAllRemoved:function(){c(r)}}),function(_,z){var j=_.config,L=_.className,F=_.style,W=_.index,H=j,A=H.key,V=H.times,K=String(A),Y=j,re=Y.className,J=Y.style,ae=Y.classNames,le=Y.styles,te=ut(Y,tj),q=w.findIndex(function(ce){return ce.key===K}),X={};if($){var Q=w.length-1-(q>-1?q:W-1),Z=r==="top"||r==="bottom"?"-50%":"0";if(Q>0){var ne,ie,fe;X.height=P?(ne=v.current[K])===null||ne===void 0?void 0:ne.offsetHeight:h==null?void 0:h.offsetHeight;for(var $e=0,Se=0;Se-1?v.current[K]=we:delete v.current[K]},prefixCls:o,classNames:ae,styles:le,className:G(re,m==null?void 0:m.notice),style:J,times:V,key:A,eventKey:A,onNoticeClose:u,hovering:$&&x.length>0})))})},rj=s.forwardRef(function(e,t){var n=e.prefixCls,r=n===void 0?"rc-notification":n,o=e.container,a=e.motion,i=e.maxCount,l=e.className,c=e.style,u=e.onAllRemoved,d=e.stack,f=e.renderNotifications,m=s.useState([]),v=ee(m,2),p=v[0],b=v[1],h=function($){var R,I=p.find(function(N){return N.key===$});I==null||(R=I.onClose)===null||R===void 0||R.call(I),b(function(N){return N.filter(function(T){return T.key!==$})})};s.useImperativeHandle(t,function(){return{open:function($){b(function(R){var I=he(R),N=I.findIndex(function(M){return M.key===$.key}),T=k({},$);if(N>=0){var P;T.times=(((P=R[N])===null||P===void 0?void 0:P.times)||0)+1,I[N]=T}else T.times=0,I.push(T);return i>0&&I.length>i&&(I=I.slice(-i)),I})},close:function($){h($)},destroy:function(){b([])}}});var g=s.useState({}),y=ee(g,2),C=y[0],x=y[1];s.useEffect(function(){var O={};p.forEach(function($){var R=$.placement,I=R===void 0?"topRight":R;I&&(O[I]=O[I]||[],O[I].push($))}),Object.keys(C).forEach(function($){O[$]=O[$]||[]}),x(O)},[p]);var S=function($){x(function(R){var I=k({},R),N=I[$]||[];return N.length||delete I[$],I})},w=s.useRef(!1);if(s.useEffect(function(){Object.keys(C).length>0?w.current=!0:w.current&&(u==null||u(),w.current=!1)},[C]),!o)return null;var E=Object.keys(C);return Yr.createPortal(s.createElement(s.Fragment,null,E.map(function(O){var $=C[O],R=s.createElement(nj,{key:O,configList:$,placement:O,prefixCls:r,className:l==null?void 0:l(O),style:c==null?void 0:c(O),motion:a,onNoticeClose:h,onAllNoticeRemoved:S,stack:d});return f?f(R,{prefixCls:r,key:O}):R})),o)}),oj=["getContainer","motion","prefixCls","maxCount","className","style","onAllRemoved","stack","renderNotifications"],aj=function(){return document.body},QC=0;function ij(){for(var e={},t=arguments.length,n=new Array(t),r=0;r0&&arguments[0]!==void 0?arguments[0]:{},t=e.getContainer,n=t===void 0?aj:t,r=e.motion,o=e.prefixCls,a=e.maxCount,i=e.className,l=e.style,c=e.onAllRemoved,u=e.stack,d=e.renderNotifications,f=ut(e,oj),m=s.useState(),v=ee(m,2),p=v[0],b=v[1],h=s.useRef(),g=s.createElement(rj,{container:p,ref:h,prefixCls:o,motion:r,maxCount:a,className:i,style:l,onAllRemoved:c,stack:u,renderNotifications:d}),y=s.useState([]),C=ee(y,2),x=C[0],S=C[1],w=Vt(function(O){var $=ij(f,O);($.key===null||$.key===void 0)&&($.key="rc-notification-".concat(QC),QC+=1),S(function(R){return[].concat(he(R),[{type:"open",config:$}])})}),E=s.useMemo(function(){return{open:w,close:function($){S(function(R){return[].concat(he(R),[{type:"close",key:$}])})},destroy:function(){S(function($){return[].concat(he($),[{type:"destroy"}])})}}},[]);return s.useEffect(function(){b(n())}),s.useEffect(function(){if(h.current&&x.length){x.forEach(function(R){switch(R.type){case"open":h.current.open(R.config);break;case"close":h.current.close(R.key);break;case"destroy":h.current.destroy();break}});var O,$;S(function(R){return(O!==R||!$)&&(O=R,$=R.filter(function(I){return!x.includes(I)})),$})}},[x]),[E,g]}var sj={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"}}]},name:"loading",theme:"outlined"},cj=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:sj}))},vi=s.forwardRef(cj);const Bf=B.createContext(void 0),ca=100,uj=10,K2=ca*uj,U2={Modal:ca,Drawer:ca,Popover:ca,Popconfirm:ca,Tooltip:ca,Tour:ca,FloatButton:ca},dj={SelectLike:50,Dropdown:50,DatePicker:50,Menu:50,ImagePreview:1};function fj(e){return e in U2}const _c=(e,t)=>{const[,n]=Kn(),r=B.useContext(Bf),o=fj(e);let a;if(t!==void 0)a=[t,t];else{let i=r??0;o?i+=(r?0:n.zIndexPopupBase)+U2[e]:i+=dj[e],a=[r===void 0?t:i,i]}return a},mj=e=>{const{componentCls:t,iconCls:n,boxShadow:r,colorText:o,colorSuccess:a,colorError:i,colorWarning:l,colorInfo:c,fontSizeLG:u,motionEaseInOutCirc:d,motionDurationSlow:f,marginXS:m,paddingXS:v,borderRadiusLG:p,zIndexPopup:b,contentPadding:h,contentBg:g}=e,y=`${t}-notice`,C=new Nt("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:v,transform:"translateY(0)",opacity:1}}),x=new Nt("MessageMoveOut",{"0%":{maxHeight:e.height,padding:v,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}}),S={padding:v,textAlign:"center",[`${t}-custom-content`]:{display:"flex",alignItems:"center"},[`${t}-custom-content > ${n}`]:{marginInlineEnd:m,fontSize:u},[`${y}-content`]:{display:"inline-block",padding:h,background:g,borderRadius:p,boxShadow:r,pointerEvents:"all"},[`${t}-success > ${n}`]:{color:a},[`${t}-error > ${n}`]:{color:i},[`${t}-warning > ${n}`]:{color:l},[`${t}-info > ${n}, + ${t}-loading > ${n}`]:{color:c}};return[{[t]:Object.assign(Object.assign({},Jt(e)),{color:o,position:"fixed",top:m,width:"100%",pointerEvents:"none",zIndex:b,[`${t}-move-up`]:{animationFillMode:"forwards"},[` + ${t}-move-up-appear, + ${t}-move-up-enter + `]:{animationName:C,animationDuration:f,animationPlayState:"paused",animationTimingFunction:d},[` + ${t}-move-up-appear${t}-move-up-appear-active, + ${t}-move-up-enter${t}-move-up-enter-active + `]:{animationPlayState:"running"},[`${t}-move-up-leave`]:{animationName:x,animationDuration:f,animationPlayState:"paused",animationTimingFunction:d},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[t]:{[`${y}-wrapper`]:Object.assign({},S)}},{[`${t}-notice-pure-panel`]:Object.assign(Object.assign({},S),{padding:0,textAlign:"start"})}]},vj=e=>({zIndexPopup:e.zIndexPopupBase+K2+10,contentBg:e.colorBgElevated,contentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`}),G2=Wt("Message",e=>{const t=Rt(e,{height:150});return[mj(t)]},vj);var pj=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);os.createElement("div",{className:G(`${e}-custom-content`,`${e}-${t}`)},n||gj[t],s.createElement("span",null,r)),hj=e=>{const{prefixCls:t,className:n,type:r,icon:o,content:a}=e,i=pj(e,["prefixCls","className","type","icon","content"]),{getPrefixCls:l}=s.useContext(lt),c=t||l("message"),u=mr(c),[d,f,m]=G2(c,u);return d(s.createElement(V2,Object.assign({},i,{prefixCls:c,className:G(n,f,`${c}-notice-pure-panel`,m,u),eventKey:"pure",duration:null,content:s.createElement(q2,{prefixCls:c,type:r,icon:o},a)})))};function yj(e,t){return{motionName:t??`${e}-move-up`}}function B0(e){let t;const n=new Promise(o=>{t=e(()=>{o(!0)})}),r=()=>{t==null||t()};return r.then=(o,a)=>n.then(o,a),r.promise=n,r}var bj=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const n=mr(t),[r,o,a]=G2(t,n);return r(s.createElement(Z3,{classNames:{list:G(o,a,n)}},e))},wj=(e,{prefixCls:t,key:n})=>s.createElement(xj,{prefixCls:t,key:n},e),$j=s.forwardRef((e,t)=>{const{top:n,prefixCls:r,getContainer:o,maxCount:a,duration:i=Sj,rtl:l,transitionName:c,onAllRemoved:u}=e,{getPrefixCls:d,getPopupContainer:f,message:m,direction:v}=s.useContext(lt),p=r||d("message"),b=()=>({left:"50%",transform:"translateX(-50%)",top:n??Cj}),h=()=>G({[`${p}-rtl`]:l??v==="rtl"}),g=()=>yj(p,c),y=s.createElement("span",{className:`${p}-close-x`},s.createElement(xi,{className:`${p}-close-icon`})),[C,x]=lj({prefixCls:p,style:b,className:h,motion:g,closable:!1,closeIcon:y,duration:i,getContainer:()=>(o==null?void 0:o())||(f==null?void 0:f())||document.body,maxCount:a,onAllRemoved:u,renderNotifications:wj});return s.useImperativeHandle(t,()=>Object.assign(Object.assign({},C),{prefixCls:p,message:m})),x});let JC=0;function X2(e){const t=s.useRef(null);return Si(),[s.useMemo(()=>{const r=c=>{var u;(u=t.current)===null||u===void 0||u.close(c)},o=c=>{if(!t.current){const w=()=>{};return w.then=()=>{},w}const{open:u,prefixCls:d,message:f}=t.current,m=`${d}-notice`,{content:v,icon:p,type:b,key:h,className:g,style:y,onClose:C}=c,x=bj(c,["content","icon","type","key","className","style","onClose"]);let S=h;return S==null&&(JC+=1,S=`antd-message-${JC}`),B0(w=>(u(Object.assign(Object.assign({},x),{key:S,content:s.createElement(q2,{prefixCls:d,type:b,icon:p},v),placement:"top",className:G(b&&`${m}-${b}`,g,f==null?void 0:f.className),style:Object.assign(Object.assign({},f==null?void 0:f.style),y),onClose:()=>{C==null||C(),w()}})),()=>{r(S)}))},i={open:o,destroy:c=>{var u;c!==void 0?r(c):(u=t.current)===null||u===void 0||u.destroy()}};return["info","success","warning","error","loading"].forEach(c=>{const u=(d,f,m)=>{let v;d&&typeof d=="object"&&"content"in d?v=d:v={content:d};let p,b;typeof f=="function"?b=f:(p=f,b=m);const h=Object.assign(Object.assign({onClose:b,duration:p},v),{type:c});return o(h)};i[c]=u}),i},[]),s.createElement($j,Object.assign({key:"message-holder"},e,{ref:t}))]}function Ej(e){return X2(e)}function Oj(){const[e,t]=s.useState([]),n=s.useCallback(r=>(t(o=>[].concat(he(o),[r])),()=>{t(o=>o.filter(a=>a!==r))}),[]);return[e,n]}function Y2(e,t){this.v=e,this.k=t}function Yn(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch{o=0}Yn=function(i,l,c,u){if(l)o?o(i,l,{value:c,enumerable:!u,configurable:!u,writable:!u}):i[l]=c;else{var d=function(m,v){Yn(i,m,function(p){return this._invoke(m,v,p)})};d("next",0),d("throw",1),d("return",2)}},Yn(e,t,n,r)}function k0(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,n=typeof Symbol=="function"?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(v,p,b,h){var g=p&&p.prototype instanceof l?p:l,y=Object.create(g.prototype);return Yn(y,"_invoke",function(C,x,S){var w,E,O,$=0,R=S||[],I=!1,N={p:0,n:0,v:e,a:T,f:T.bind(e,4),d:function(M,_){return w=M,E=0,O=e,N.n=_,i}};function T(P,M){for(E=P,O=M,t=0;!I&&$&&!_&&t3?(_=L===M)&&(O=z[(E=z[4])?5:(E=3,3)],z[4]=z[5]=e):z[0]<=j&&((_=P<2&&jM||M>L)&&(z[4]=P,z[5]=M,N.n=L,E=0))}if(_||P>1)return i;throw I=!0,M}return function(P,M,_){if($>1)throw TypeError("Generator is already running");for(I&&M===1&&T(M,_),E=M,O=_;(t=E<2?e:O)||!I;){w||(E?E<3?(E>1&&(N.n=-1),T(E,O)):N.n=O:N.v=O);try{if($=2,w){if(E||(P="next"),t=w[P]){if(!(t=t.call(w,O)))throw TypeError("iterator result is not an object");if(!t.done)return t;O=t.value,E<2&&(E=0)}else E===1&&(t=w.return)&&t.call(w),E<2&&(O=TypeError("The iterator does not provide a '"+P+"' method"),E=1);w=e}else if((t=(I=N.n<0)?O:C.call(x,N))!==i)break}catch(z){w=e,E=1,O=z}finally{$=1}}return{value:t,done:I}}}(v,b,h),!0),y}var i={};function l(){}function c(){}function u(){}t=Object.getPrototypeOf;var d=[][r]?t(t([][r]())):(Yn(t={},r,function(){return this}),t),f=u.prototype=l.prototype=Object.create(d);function m(v){return Object.setPrototypeOf?Object.setPrototypeOf(v,u):(v.__proto__=u,Yn(v,o,"GeneratorFunction")),v.prototype=Object.create(f),v}return c.prototype=u,Yn(f,"constructor",u),Yn(u,"constructor",c),c.displayName="GeneratorFunction",Yn(u,o,"GeneratorFunction"),Yn(f),Yn(f,o,"Generator"),Yn(f,r,function(){return this}),Yn(f,"toString",function(){return"[object Generator]"}),(k0=function(){return{w:a,m}})()}function Dd(e,t){function n(o,a,i,l){try{var c=e[o](a),u=c.value;return u instanceof Y2?t.resolve(u.v).then(function(d){n("next",d,i,l)},function(d){n("throw",d,i,l)}):t.resolve(u).then(function(d){c.value=d,i(c)},function(d){return n("throw",d,i,l)})}catch(d){l(d)}}var r;this.next||(Yn(Dd.prototype),Yn(Dd.prototype,typeof Symbol=="function"&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),Yn(this,"_invoke",function(o,a,i){function l(){return new t(function(c,u){n(o,i,c,u)})}return r=r?r.then(l,l):l()},!0)}function Q2(e,t,n,r,o){return new Dd(k0().w(e,t,n,r),o||Promise)}function Rj(e,t,n,r,o){var a=Q2(e,t,n,r,o);return a.next().then(function(i){return i.done?i.value:a.next()})}function Pj(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function o(){for(;n.length;)if((r=n.pop())in t)return o.value=r,o.done=!1,o;return o.done=!0,o}}function ZC(e){if(e!=null){var t=e[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if(typeof e.next=="function")return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(We(e)+" is not iterable")}function Ht(){var e=k0(),t=e.m(Ht),n=(Object.getPrototypeOf?Object.getPrototypeOf(t):t.__proto__).constructor;function r(i){var l=typeof i=="function"&&i.constructor;return!!l&&(l===n||(l.displayName||l.name)==="GeneratorFunction")}var o={throw:1,return:2,break:3,continue:3};function a(i){var l,c;return function(u){l||(l={stop:function(){return c(u.a,2)},catch:function(){return u.v},abrupt:function(f,m){return c(u.a,o[f],m)},delegateYield:function(f,m,v){return l.resultName=m,c(u.d,ZC(f),v)},finish:function(f){return c(u.f,f)}},c=function(f,m,v){u.p=l.prev,u.n=l.next;try{return f(m,v)}finally{l.next=u.n}}),l.resultName&&(l[l.resultName]=u.v,l.resultName=void 0),l.sent=u.v,l.next=u.n;try{return i.call(this,l)}finally{u.p=l.prev,u.n=l.next}}}return(Ht=function(){return{wrap:function(c,u,d,f){return e.w(a(c),u,d,f&&f.reverse())},isGeneratorFunction:r,mark:e.m,awrap:function(c,u){return new Y2(c,u)},AsyncIterator:Dd,async:function(c,u,d,f,m){return(r(u)?Q2:Rj)(a(c),u,d,f,m)},keys:Pj,values:ZC}})()}function eS(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(u){return void n(u)}l.done?t(c):Promise.resolve(c).then(r,o)}function lr(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(c){eS(a,r,o,i,l,"next",c)}function l(c){eS(a,r,o,i,l,"throw",c)}i(void 0)})}}var zc=k({},iM),Ij=zc.version,dv=zc.render,Nj=zc.unmountComponentAtNode,kf;try{var Tj=Number((Ij||"").split(".")[0]);Tj>=18&&(kf=zc.createRoot)}catch{}function tS(e){var t=zc.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;t&&We(t)==="object"&&(t.usingClientEntryPoint=e)}var Bd="__rc_react_root__";function Mj(e,t){tS(!0);var n=t[Bd]||kf(t);tS(!1),n.render(e),t[Bd]=n}function _j(e,t){dv==null||dv(e,t)}function zj(e,t){if(kf){Mj(e,t);return}_j(e,t)}function jj(e){return Tg.apply(this,arguments)}function Tg(){return Tg=lr(Ht().mark(function e(t){return Ht().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",Promise.resolve().then(function(){var o;(o=t[Bd])===null||o===void 0||o.unmount(),delete t[Bd]}));case 1:case"end":return r.stop()}},e)})),Tg.apply(this,arguments)}function Lj(e){Nj(e)}function Dj(e){return Mg.apply(this,arguments)}function Mg(){return Mg=lr(Ht().mark(function e(t){return Ht().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(kf===void 0){r.next=2;break}return r.abrupt("return",jj(t));case 2:Lj(t);case 3:case"end":return r.stop()}},e)})),Mg.apply(this,arguments)}const Bj=(e,t)=>(zj(e,t),()=>Dj(t));let kj=Bj;function A0(e){return kj}const fv=()=>({height:0,opacity:0}),nS=e=>{const{scrollHeight:t}=e;return{height:t,opacity:1}},Aj=e=>({height:e?e.offsetHeight:0}),mv=(e,t)=>(t==null?void 0:t.deadline)===!0||t.propertyName==="height",F0=(e=sc)=>({motionName:`${e}-motion-collapse`,onAppearStart:fv,onEnterStart:fv,onAppearActive:nS,onEnterActive:nS,onLeaveStart:Aj,onLeaveActive:fv,onAppearEnd:mv,onEnterEnd:mv,onLeaveEnd:mv,motionDeadline:500}),za=(e,t,n)=>n!==void 0?n:`${e}-${t}`;function Zt(e,t){var n=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(r){delete n[r]}),n}const Af=function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),n=t.width,r=t.height;if(n||r)return!0}if(e.getBoundingClientRect){var o=e.getBoundingClientRect(),a=o.width,i=o.height;if(a||i)return!0}}return!1},Fj=e=>{const{componentCls:t,colorPrimary:n}=e;return{[t]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${n})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:[`box-shadow 0.4s ${e.motionEaseOutCirc}`,`opacity 2s ${e.motionEaseOutCirc}`].join(","),"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:[`box-shadow ${e.motionDurationSlow} ${e.motionEaseInOut}`,`opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`].join(",")}}}}},Hj=Wz("Wave",e=>[Fj(e)]),Ff=`${sc}-wave-target`;function vv(e){return e&&e!=="#fff"&&e!=="#ffffff"&&e!=="rgb(255, 255, 255)"&&e!=="rgba(255, 255, 255, 1)"&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&e!=="transparent"}function Vj(e){const{borderTopColor:t,borderColor:n,backgroundColor:r}=getComputedStyle(e);return vv(t)?t:vv(n)?n:vv(r)?r:null}function pv(e){return Number.isNaN(e)?0:e}const Wj=e=>{const{className:t,target:n,component:r,registerUnmount:o}=e,a=s.useRef(null),i=s.useRef(null);s.useEffect(()=>{i.current=o()},[]);const[l,c]=s.useState(null),[u,d]=s.useState([]),[f,m]=s.useState(0),[v,p]=s.useState(0),[b,h]=s.useState(0),[g,y]=s.useState(0),[C,x]=s.useState(!1),S={left:f,top:v,width:b,height:g,borderRadius:u.map(O=>`${O}px`).join(" ")};l&&(S["--wave-color"]=l);function w(){const O=getComputedStyle(n);c(Vj(n));const $=O.position==="static",{borderLeftWidth:R,borderTopWidth:I}=O;m($?n.offsetLeft:pv(-parseFloat(R))),p($?n.offsetTop:pv(-parseFloat(I))),h(n.offsetWidth),y(n.offsetHeight);const{borderTopLeftRadius:N,borderTopRightRadius:T,borderBottomLeftRadius:P,borderBottomRightRadius:M}=O;d([N,T,M,P].map(_=>pv(parseFloat(_))))}if(s.useEffect(()=>{if(n){const O=Lt(()=>{w(),x(!0)});let $;return typeof ResizeObserver<"u"&&($=new ResizeObserver(w),$.observe(n)),()=>{Lt.cancel(O),$==null||$.disconnect()}}},[]),!C)return null;const E=(r==="Checkbox"||r==="Radio")&&(n==null?void 0:n.classList.contains(Ff));return s.createElement(to,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(O,$)=>{var R,I;if($.deadline||$.propertyName==="opacity"){const N=(R=a.current)===null||R===void 0?void 0:R.parentElement;(I=i.current)===null||I===void 0||I.call(i).then(()=>{N==null||N.remove()})}return!1}},({className:O},$)=>s.createElement("div",{ref:Or(a,$),className:G(t,O,{"wave-quick":E}),style:S}))},Kj=(e,t)=>{var n;const{component:r}=t;if(r==="Checkbox"&&!(!((n=e.querySelector("input"))===null||n===void 0)&&n.checked))return;const o=document.createElement("div");o.style.position="absolute",o.style.left="0px",o.style.top="0px",e==null||e.insertBefore(o,e==null?void 0:e.firstChild);const a=A0();let i=null;function l(){return i}i=a(s.createElement(Wj,Object.assign({},t,{target:e,registerUnmount:l})),o)},Uj=(e,t,n)=>{const{wave:r}=s.useContext(lt),[,o,a]=Kn(),i=Vt(u=>{const d=e.current;if(r!=null&&r.disabled||!d)return;const f=d.querySelector(`.${Ff}`)||d,{showEffect:m}=r||{};(m||Kj)(f,{className:t,token:o,component:n,event:u,hashId:a})}),l=s.useRef(null);return u=>{Lt.cancel(l.current),l.current=Lt(()=>{i(u)})}},Hf=e=>{const{children:t,disabled:n,component:r}=e,{getPrefixCls:o}=s.useContext(lt),a=s.useRef(null),i=o("wave"),[,l]=Hj(i),c=Uj(a,G(i,l),r);if(B.useEffect(()=>{const d=a.current;if(!d||d.nodeType!==1||n)return;const f=m=>{!Af(m.target)||!d.getAttribute||d.getAttribute("disabled")||d.disabled||d.className.includes("disabled")||d.className.includes("-leave")||c(m)};return d.addEventListener("click",f,!0),()=>{d.removeEventListener("click",f,!0)}},[n]),!B.isValidElement(t))return t??null;const u=Lo(t)?Or(Ci(t),a):a;return nr(t,{ref:u})},no=e=>{const t=B.useContext($l);return B.useMemo(()=>e?typeof e=="string"?e??t:typeof e=="function"?e(t):t:t,[e,t])},Gj=e=>{const{componentCls:t}=e;return{[t]:{"&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}},qj=e=>{const{componentCls:t,antCls:n}=e;return{[t]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${t}-item:empty`]:{display:"none"},[`${t}-item > ${n}-badge-not-a-wrapper:only-child`]:{display:"block"}}}},Xj=e=>{const{componentCls:t}=e;return{[t]:{"&-gap-row-small":{rowGap:e.spaceGapSmallSize},"&-gap-row-middle":{rowGap:e.spaceGapMiddleSize},"&-gap-row-large":{rowGap:e.spaceGapLargeSize},"&-gap-col-small":{columnGap:e.spaceGapSmallSize},"&-gap-col-middle":{columnGap:e.spaceGapMiddleSize},"&-gap-col-large":{columnGap:e.spaceGapLargeSize}}}},J2=Wt("Space",e=>{const t=Rt(e,{spaceGapSmallSize:e.paddingXS,spaceGapMiddleSize:e.padding,spaceGapLargeSize:e.paddingLG});return[qj(t),Xj(t),Gj(t)]},()=>({}),{resetStyle:!1});var Z2=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const n=s.useContext(Vf),r=s.useMemo(()=>{if(!n)return"";const{compactDirection:o,isFirstItem:a,isLastItem:i}=n,l=o==="vertical"?"-vertical-":"-";return G(`${e}-compact${l}item`,{[`${e}-compact${l}first-item`]:a,[`${e}-compact${l}last-item`]:i,[`${e}-compact${l}item-rtl`]:t==="rtl"})},[e,t,n]);return{compactSize:n==null?void 0:n.compactSize,compactDirection:n==null?void 0:n.compactDirection,compactItemClassnames:r}},Yj=e=>{const{children:t}=e;return s.createElement(Vf.Provider,{value:null},t)},Qj=e=>{const{children:t}=e,n=Z2(e,["children"]);return s.createElement(Vf.Provider,{value:s.useMemo(()=>n,[n])},t)},Jj=e=>{const{getPrefixCls:t,direction:n}=s.useContext(lt),{size:r,direction:o,block:a,prefixCls:i,className:l,rootClassName:c,children:u}=e,d=Z2(e,["size","direction","block","prefixCls","className","rootClassName","children"]),f=no(C=>r??C),m=t("space-compact",i),[v,p]=J2(m),b=G(m,p,{[`${m}-rtl`]:n==="rtl",[`${m}-block`]:a,[`${m}-vertical`]:o==="vertical"},l,c),h=s.useContext(Vf),g=ur(u),y=s.useMemo(()=>g.map((C,x)=>{const S=(C==null?void 0:C.key)||`${m}-item-${x}`;return s.createElement(Qj,{key:S,compactSize:f,compactDirection:o,isFirstItem:x===0&&(!h||(h==null?void 0:h.isFirstItem)),isLastItem:x===g.length-1&&(!h||(h==null?void 0:h.isLastItem))},C)}),[r,g,h]);return g.length===0?null:v(s.createElement("div",Object.assign({className:b},d),y))};var Zj=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{getPrefixCls:t,direction:n}=s.useContext(lt),{prefixCls:r,size:o,className:a}=e,i=Zj(e,["prefixCls","size","className"]),l=t("btn-group",r),[,,c]=Kn(),u=s.useMemo(()=>{switch(o){case"large":return"lg";case"small":return"sm";default:return""}},[o]),d=G(l,{[`${l}-${u}`]:u,[`${l}-rtl`]:n==="rtl"},a,c);return s.createElement(eO.Provider,{value:o},s.createElement("div",Object.assign({},i,{className:d})))},rS=/^[\u4E00-\u9FA5]{2}$/,_g=rS.test.bind(rS);function H0(e){return e==="danger"?{danger:!0}:{type:e}}function oS(e){return typeof e=="string"}function gv(e){return e==="text"||e==="link"}function tL(e,t){if(e==null)return;const n=t?" ":"";return typeof e!="string"&&typeof e!="number"&&oS(e.type)&&_g(e.props.children)?nr(e,{children:e.props.children.split("").join(n)}):oS(e)?_g(e)?B.createElement("span",null,e.split("").join(n)):B.createElement("span",null,e):F2(e)?B.createElement("span",null,e):e}function nL(e,t){let n=!1;const r=[];return B.Children.forEach(e,o=>{const a=typeof o,i=a==="string"||a==="number";if(n&&i){const l=r.length-1,c=r[l];r[l]=`${c}${o}`}else r.push(o);n=i}),B.Children.map(r,o=>tL(o,t))}["default","primary","danger"].concat(he(_a));const zg=s.forwardRef((e,t)=>{const{className:n,style:r,children:o,prefixCls:a}=e,i=G(`${a}-icon`,n);return B.createElement("span",{ref:t,className:i,style:r},o)}),aS=s.forwardRef((e,t)=>{const{prefixCls:n,className:r,style:o,iconClassName:a}=e,i=G(`${n}-loading-icon`,r);return B.createElement(zg,{prefixCls:n,className:i,style:o,ref:t},B.createElement(vi,{className:a}))}),hv=()=>({width:0,opacity:0,transform:"scale(0)"}),yv=e=>({width:e.scrollWidth,opacity:1,transform:"scale(1)"}),rL=e=>{const{prefixCls:t,loading:n,existIcon:r,className:o,style:a,mount:i}=e,l=!!n;return r?B.createElement(aS,{prefixCls:t,className:o,style:a}):B.createElement(to,{visible:l,motionName:`${t}-loading-icon-motion`,motionAppear:!i,motionEnter:!i,motionLeave:!i,removeOnLeave:!0,onAppearStart:hv,onAppearActive:yv,onEnterStart:hv,onEnterActive:yv,onLeaveStart:yv,onLeaveActive:hv},({className:c,style:u},d)=>{const f=Object.assign(Object.assign({},a),u);return B.createElement(aS,{prefixCls:t,className:G(o,c),style:f,ref:d})})},iS=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}}),oL=e=>{const{componentCls:t,fontSize:n,lineWidth:r,groupBorderColor:o,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:e.calc(r).mul(-1).equal(),[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:"relative",zIndex:1,"&:hover, &:focus, &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:n}},iS(`${t}-primary`,o),iS(`${t}-danger`,a)]}};var aL=["b"],iL=["v"],bv=function(t){return Math.round(Number(t||0))},lL=function(t){if(t instanceof zt)return t;if(t&&We(t)==="object"&&"h"in t&&"b"in t){var n=t,r=n.b,o=ut(n,aL);return k(k({},o),{},{v:r})}return typeof t=="string"&&/hsb/.test(t)?t.replace(/hsb/,"hsv"):t},cc=function(e){Zr(n,e);var t=eo(n);function n(r){return mn(this,n),t.call(this,lL(r))}return vn(n,[{key:"toHsbString",value:function(){var o=this.toHsb(),a=bv(o.s*100),i=bv(o.b*100),l=bv(o.h),c=o.a,u="hsb(".concat(l,", ").concat(a,"%, ").concat(i,"%)"),d="hsba(".concat(l,", ").concat(a,"%, ").concat(i,"%, ").concat(c.toFixed(c===0?0:2),")");return c===1?u:d}},{key:"toHsb",value:function(){var o=this.toHsv(),a=o.v,i=ut(o,iL);return k(k({},i),{},{b:a,a:this.a})}}]),n}(zt),sL=function(t){return t instanceof cc?t:new cc(t)};sL("#1677ff");const cL=(e,t)=>(e==null?void 0:e.replace(/[^\w/]/g,"").slice(0,t?8:6))||"",uL=(e,t)=>e?cL(e,t):"";let dL=function(){function e(t){mn(this,e);var n;if(this.cleared=!1,t instanceof e){this.metaColor=t.metaColor.clone(),this.colors=(n=t.colors)===null||n===void 0?void 0:n.map(o=>({color:new e(o.color),percent:o.percent})),this.cleared=t.cleared;return}const r=Array.isArray(t);r&&t.length?(this.colors=t.map(({color:o,percent:a})=>({color:new e(o),percent:a})),this.metaColor=new cc(this.colors[0].color.metaColor)):this.metaColor=new cc(r?"":t),(!t||r&&!this.colors)&&(this.metaColor=this.metaColor.setA(0),this.cleared=!0)}return vn(e,[{key:"toHsb",value:function(){return this.metaColor.toHsb()}},{key:"toHsbString",value:function(){return this.metaColor.toHsbString()}},{key:"toHex",value:function(){return uL(this.toHexString(),this.metaColor.a<1)}},{key:"toHexString",value:function(){return this.metaColor.toHexString()}},{key:"toRgb",value:function(){return this.metaColor.toRgb()}},{key:"toRgbString",value:function(){return this.metaColor.toRgbString()}},{key:"isGradient",value:function(){return!!this.colors&&!this.cleared}},{key:"getColors",value:function(){return this.colors||[{color:this,percent:0}]}},{key:"toCssString",value:function(){const{colors:n}=this;return n?`linear-gradient(90deg, ${n.map(o=>`${o.color.toRgbString()} ${o.percent}%`).join(", ")})`:this.metaColor.toRgbString()}},{key:"equals",value:function(n){return!n||this.isGradient()!==n.isGradient()?!1:this.isGradient()?this.colors.length===n.colors.length&&this.colors.every((r,o)=>{const a=n.colors[o];return r.percent===a.percent&&r.color.equals(a.color)}):this.toHexString()===n.toHexString()}}])}();var fL={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"},mL=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:fL}))},uc=s.forwardRef(mL);const V0=e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut}, + opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}}),vL=e=>({animationDuration:e,animationFillMode:"both"}),pL=e=>({animationDuration:e,animationFillMode:"both"}),Wf=(e,t,n,r,o=!1)=>{const a=o?"&":"";return{[` + ${a}${e}-enter, + ${a}${e}-appear + `]:Object.assign(Object.assign({},vL(r)),{animationPlayState:"paused"}),[`${a}${e}-leave`]:Object.assign(Object.assign({},pL(r)),{animationPlayState:"paused"}),[` + ${a}${e}-enter${e}-enter-active, + ${a}${e}-appear${e}-appear-active + `]:{animationName:t,animationPlayState:"running"},[`${a}${e}-leave${e}-leave-active`]:{animationName:n,animationPlayState:"running",pointerEvents:"none"}}},gL=new Nt("antFadeIn",{"0%":{opacity:0},"100%":{opacity:1}}),hL=new Nt("antFadeOut",{"0%":{opacity:1},"100%":{opacity:0}}),tO=(e,t=!1)=>{const{antCls:n}=e,r=`${n}-fade`,o=t?"&":"";return[Wf(r,gL,hL,e.motionDurationMid,t),{[` + ${o}${r}-enter, + ${o}${r}-appear + `]:{opacity:0,animationTimingFunction:"linear"},[`${o}${r}-leave`]:{animationTimingFunction:"linear"}}]},yL=new Nt("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),bL=new Nt("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),CL=new Nt("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),SL=new Nt("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),xL=new Nt("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),wL=new Nt("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),$L=new Nt("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),EL=new Nt("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}}),OL={"move-up":{inKeyframes:$L,outKeyframes:EL},"move-down":{inKeyframes:yL,outKeyframes:bL},"move-left":{inKeyframes:CL,outKeyframes:SL},"move-right":{inKeyframes:xL,outKeyframes:wL}},kd=(e,t)=>{const{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:o,outKeyframes:a}=OL[t];return[Wf(r,o,a,e.motionDurationMid),{[` + ${r}-enter, + ${r}-appear + `]:{opacity:0,animationTimingFunction:e.motionEaseOutCirc},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},W0=new Nt("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),K0=new Nt("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),U0=new Nt("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),G0=new Nt("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),RL=new Nt("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),PL=new Nt("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),IL=new Nt("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),NL=new Nt("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),TL={"slide-up":{inKeyframes:W0,outKeyframes:K0},"slide-down":{inKeyframes:U0,outKeyframes:G0},"slide-left":{inKeyframes:RL,outKeyframes:PL},"slide-right":{inKeyframes:IL,outKeyframes:NL}},ja=(e,t)=>{const{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:o,outKeyframes:a}=TL[t];return[Wf(r,o,a,e.motionDurationMid),{[` + ${r}-enter, + ${r}-appear + `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:e.motionEaseOutQuint,"&-prepare":{transform:"scale(1)"}},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInQuint}}]},ML=new Nt("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),_L=new Nt("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),lS=new Nt("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),sS=new Nt("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),zL=new Nt("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),jL=new Nt("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),LL=new Nt("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),DL=new Nt("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),BL=new Nt("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),kL=new Nt("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),AL=new Nt("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),FL=new Nt("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),HL={zoom:{inKeyframes:ML,outKeyframes:_L},"zoom-big":{inKeyframes:lS,outKeyframes:sS},"zoom-big-fast":{inKeyframes:lS,outKeyframes:sS},"zoom-left":{inKeyframes:LL,outKeyframes:DL},"zoom-right":{inKeyframes:BL,outKeyframes:kL},"zoom-up":{inKeyframes:zL,outKeyframes:jL},"zoom-down":{inKeyframes:AL,outKeyframes:FL}},jc=(e,t)=>{const{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:o,outKeyframes:a}=HL[t];return[Wf(r,o,a,t==="zoom-big-fast"?e.motionDurationFast:e.motionDurationMid),{[` + ${r}-enter, + ${r}-appear + `]:{transform:"scale(0)",opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},VL=(e,t)=>{const{r:n,g:r,b:o,a}=e.toRgb(),i=new cc(e.toRgbString()).onBackground(t).toHsv();return a<=.5?i.v>.5:n*.299+r*.587+o*.114>192},nO=e=>{const{paddingInline:t,onlyIconSize:n}=e;return Rt(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:0,buttonIconOnlyFontSize:n})},rO=e=>{var t,n,r,o,a,i;const l=(t=e.contentFontSize)!==null&&t!==void 0?t:e.fontSize,c=(n=e.contentFontSizeSM)!==null&&n!==void 0?n:e.fontSize,u=(r=e.contentFontSizeLG)!==null&&r!==void 0?r:e.fontSizeLG,d=(o=e.contentLineHeight)!==null&&o!==void 0?o:Ju(l),f=(a=e.contentLineHeightSM)!==null&&a!==void 0?a:Ju(c),m=(i=e.contentLineHeightLG)!==null&&i!==void 0?i:Ju(u),v=VL(new dL(e.colorBgSolid),"#fff")?"#000":"#fff",p=_a.reduce((b,h)=>Object.assign(Object.assign({},b),{[`${h}ShadowColor`]:`0 ${U(e.controlOutlineWidth)} 0 ${ms(e[`${h}1`],e.colorBgContainer)}`}),{});return Object.assign(Object.assign({},p),{fontWeight:400,defaultShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`,primaryShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`,dangerShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`,primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorder,defaultGhostColor:e.colorBgContainer,ghostBg:"transparent",defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,onlyIconSize:"inherit",onlyIconSizeSM:"inherit",onlyIconSizeLG:"inherit",groupBorderColor:e.colorPrimaryHover,linkHoverBg:"transparent",textTextColor:e.colorText,textTextHoverColor:e.colorText,textTextActiveColor:e.colorText,textHoverBg:e.colorFillTertiary,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,defaultHoverBg:e.colorBgContainer,defaultHoverColor:e.colorPrimaryHover,defaultHoverBorderColor:e.colorPrimaryHover,defaultActiveBg:e.colorBgContainer,defaultActiveColor:e.colorPrimaryActive,defaultActiveBorderColor:e.colorPrimaryActive,solidTextColor:v,contentFontSize:l,contentFontSizeSM:c,contentFontSizeLG:u,contentLineHeight:d,contentLineHeightSM:f,contentLineHeightLG:m,paddingBlock:Math.max((e.controlHeight-l*d)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-c*f)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-u*m)/2-e.lineWidth,0)})},WL=e=>{const{componentCls:t,iconCls:n,fontWeight:r,opacityLoading:o,motionDurationSlow:a,motionEaseInOut:i,marginXS:l,calc:c}=e;return{[t]:{outline:"none",position:"relative",display:"inline-flex",gap:e.marginXS,alignItems:"center",justifyContent:"center",fontWeight:r,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",background:"transparent",border:`${U(e.lineWidth)} ${e.lineType} transparent`,cursor:"pointer",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",color:e.colorText,"&:disabled > *":{pointerEvents:"none"},[`${t}-icon > svg`]:Nc(),"> a":{color:"currentColor"},"&:not(:disabled)":ea(e),[`&${t}-two-chinese-chars::first-letter`]:{letterSpacing:"0.34em"},[`&${t}-two-chinese-chars > *:not(${n})`]:{marginInlineEnd:"-0.34em",letterSpacing:"0.34em"},[`&${t}-icon-only`]:{paddingInline:0,[`&${t}-compact-item`]:{flex:"none"},[`&${t}-round`]:{width:"auto"}},[`&${t}-loading`]:{opacity:o,cursor:"default"},[`${t}-loading-icon`]:{transition:["width","opacity","margin"].map(u=>`${u} ${a} ${i}`).join(",")},[`&:not(${t}-icon-end)`]:{[`${t}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineEnd:c(l).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineEnd:0},"&-leave-start":{marginInlineEnd:0},"&-leave-active":{marginInlineEnd:c(l).mul(-1).equal()}}},"&-icon-end":{flexDirection:"row-reverse",[`${t}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineStart:c(l).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineStart:0},"&-leave-start":{marginInlineStart:0},"&-leave-active":{marginInlineStart:c(l).mul(-1).equal()}}}}}},oO=(e,t,n)=>({[`&:not(:disabled):not(${e}-disabled)`]:{"&:hover":t,"&:active":n}}),KL=e=>({minWidth:e.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:"50%"}),UL=e=>({borderRadius:e.controlHeight,paddingInlineStart:e.calc(e.controlHeight).div(2).equal(),paddingInlineEnd:e.calc(e.controlHeight).div(2).equal()}),GL=e=>({cursor:"not-allowed",borderColor:e.borderColorDisabled,color:e.colorTextDisabled,background:e.colorBgContainerDisabled,boxShadow:"none"}),Kf=(e,t,n,r,o,a,i,l)=>({[`&${e}-background-ghost`]:Object.assign(Object.assign({color:n||void 0,background:t,borderColor:r||void 0,boxShadow:"none"},oO(e,Object.assign({background:t},i),Object.assign({background:t},l))),{"&:disabled":{cursor:"not-allowed",color:o||void 0,borderColor:a||void 0}})}),qL=e=>({[`&:disabled, &${e.componentCls}-disabled`]:Object.assign({},GL(e))}),XL=e=>({[`&:disabled, &${e.componentCls}-disabled`]:{cursor:"not-allowed",color:e.colorTextDisabled}}),Uf=(e,t,n,r)=>{const a=r&&["link","text"].includes(r)?XL:qL;return Object.assign(Object.assign({},a(e)),oO(e.componentCls,t,n))},Gf=(e,t,n,r,o)=>({[`&${e.componentCls}-variant-solid`]:Object.assign({color:t,background:n},Uf(e,r,o))}),qf=(e,t,n,r,o)=>({[`&${e.componentCls}-variant-outlined, &${e.componentCls}-variant-dashed`]:Object.assign({borderColor:t,background:n},Uf(e,r,o))}),Xf=e=>({[`&${e.componentCls}-variant-dashed`]:{borderStyle:"dashed"}}),Yf=(e,t,n,r)=>({[`&${e.componentCls}-variant-filled`]:Object.assign({boxShadow:"none",background:t},Uf(e,n,r))}),Ao=(e,t,n,r,o)=>({[`&${e.componentCls}-variant-${n}`]:Object.assign({color:t,boxShadow:"none"},Uf(e,r,o,n))}),YL=e=>{const{componentCls:t}=e;return _a.reduce((n,r)=>{const o=e[`${r}6`],a=e[`${r}1`],i=e[`${r}5`],l=e[`${r}2`],c=e[`${r}3`],u=e[`${r}7`];return Object.assign(Object.assign({},n),{[`&${t}-color-${r}`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:o,boxShadow:e[`${r}ShadowColor`]},Gf(e,e.colorTextLightSolid,o,{background:i},{background:u})),qf(e,o,e.colorBgContainer,{color:i,borderColor:i,background:e.colorBgContainer},{color:u,borderColor:u,background:e.colorBgContainer})),Xf(e)),Yf(e,a,{background:l},{background:c})),Ao(e,o,"link",{color:i},{color:u})),Ao(e,o,"text",{color:i,background:a},{color:u,background:c}))})},{})},QL=e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.defaultColor,boxShadow:e.defaultShadow},Gf(e,e.solidTextColor,e.colorBgSolid,{color:e.solidTextColor,background:e.colorBgSolidHover},{color:e.solidTextColor,background:e.colorBgSolidActive})),Xf(e)),Yf(e,e.colorFillTertiary,{background:e.colorFillSecondary},{background:e.colorFill})),Kf(e.componentCls,e.ghostBg,e.defaultGhostColor,e.defaultGhostBorderColor,e.colorTextDisabled,e.colorBorder)),Ao(e,e.textTextColor,"link",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),JL=e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorPrimary,boxShadow:e.primaryShadow},qf(e,e.colorPrimary,e.colorBgContainer,{color:e.colorPrimaryTextHover,borderColor:e.colorPrimaryHover,background:e.colorBgContainer},{color:e.colorPrimaryTextActive,borderColor:e.colorPrimaryActive,background:e.colorBgContainer})),Xf(e)),Yf(e,e.colorPrimaryBg,{background:e.colorPrimaryBgHover},{background:e.colorPrimaryBorder})),Ao(e,e.colorPrimaryText,"text",{color:e.colorPrimaryTextHover,background:e.colorPrimaryBg},{color:e.colorPrimaryTextActive,background:e.colorPrimaryBorder})),Ao(e,e.colorPrimaryText,"link",{color:e.colorPrimaryTextHover,background:e.linkHoverBg},{color:e.colorPrimaryTextActive})),Kf(e.componentCls,e.ghostBg,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),ZL=e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorError,boxShadow:e.dangerShadow},Gf(e,e.dangerColor,e.colorError,{background:e.colorErrorHover},{background:e.colorErrorActive})),qf(e,e.colorError,e.colorBgContainer,{color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),Xf(e)),Yf(e,e.colorErrorBg,{background:e.colorErrorBgFilledHover},{background:e.colorErrorBgActive})),Ao(e,e.colorError,"text",{color:e.colorErrorHover,background:e.colorErrorBg},{color:e.colorErrorHover,background:e.colorErrorBgActive})),Ao(e,e.colorError,"link",{color:e.colorErrorHover},{color:e.colorErrorActive})),Kf(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),eD=e=>Object.assign(Object.assign({},Ao(e,e.colorLink,"link",{color:e.colorLinkHover},{color:e.colorLinkActive})),Kf(e.componentCls,e.ghostBg,e.colorInfo,e.colorInfo,e.colorTextDisabled,e.colorBorder,{color:e.colorInfoHover,borderColor:e.colorInfoHover},{color:e.colorInfoActive,borderColor:e.colorInfoActive})),tD=e=>{const{componentCls:t}=e;return Object.assign({[`${t}-color-default`]:QL(e),[`${t}-color-primary`]:JL(e),[`${t}-color-dangerous`]:ZL(e),[`${t}-color-link`]:eD(e)},YL(e))},nD=e=>Object.assign(Object.assign(Object.assign(Object.assign({},qf(e,e.defaultBorderColor,e.defaultBg,{color:e.defaultHoverColor,borderColor:e.defaultHoverBorderColor,background:e.defaultHoverBg},{color:e.defaultActiveColor,borderColor:e.defaultActiveBorderColor,background:e.defaultActiveBg})),Ao(e,e.textTextColor,"text",{color:e.textTextHoverColor,background:e.textHoverBg},{color:e.textTextActiveColor,background:e.colorBgTextActive})),Gf(e,e.primaryColor,e.colorPrimary,{background:e.colorPrimaryHover,color:e.primaryColor},{background:e.colorPrimaryActive,color:e.primaryColor})),Ao(e,e.colorLink,"link",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),q0=(e,t="")=>{const{componentCls:n,controlHeight:r,fontSize:o,borderRadius:a,buttonPaddingHorizontal:i,iconCls:l,buttonPaddingVertical:c,buttonIconOnlyFontSize:u}=e;return[{[t]:{fontSize:o,height:r,padding:`${U(c)} ${U(i)}`,borderRadius:a,[`&${n}-icon-only`]:{width:r,[l]:{fontSize:u}}}},{[`${n}${n}-circle${t}`]:KL(e)},{[`${n}${n}-round${t}`]:UL(e)}]},rD=e=>{const t=Rt(e,{fontSize:e.contentFontSize});return q0(t,e.componentCls)},oD=e=>{const t=Rt(e,{controlHeight:e.controlHeightSM,fontSize:e.contentFontSizeSM,padding:e.paddingXS,buttonPaddingHorizontal:e.paddingInlineSM,buttonPaddingVertical:0,borderRadius:e.borderRadiusSM,buttonIconOnlyFontSize:e.onlyIconSizeSM});return q0(t,`${e.componentCls}-sm`)},aD=e=>{const t=Rt(e,{controlHeight:e.controlHeightLG,fontSize:e.contentFontSizeLG,buttonPaddingHorizontal:e.paddingInlineLG,buttonPaddingVertical:0,borderRadius:e.borderRadiusLG,buttonIconOnlyFontSize:e.onlyIconSizeLG});return q0(t,`${e.componentCls}-lg`)},iD=e=>{const{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:"100%"}}}},lD=Wt("Button",e=>{const t=nO(e);return[WL(t),rD(t),oD(t),aD(t),iD(t),tD(t),nD(t),oL(t)]},rO,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});function sD(e,t,n){const{focusElCls:r,focus:o,borderElCls:a}=n,i=a?"> *":"",l=["hover",o?"focus":null,"active"].filter(Boolean).map(c=>`&:${c} ${i}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()},"&-item":Object.assign(Object.assign({[l]:{zIndex:2}},r?{[`&${r}`]:{zIndex:2}}:{}),{[`&[disabled] ${i}`]:{zIndex:0}})}}function cD(e,t,n){const{borderElCls:r}=n,o=r?`> ${r}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${o}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${o}, &${e}-sm ${o}, &${e}-lg ${o}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${o}, &${e}-sm ${o}, &${e}-lg ${o}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function X0(e,t={focus:!0}){const{componentCls:n}=e,r=`${n}-compact`;return{[r]:Object.assign(Object.assign({},sD(e,r,t)),cD(n,r,t))}}function uD(e,t){return{[`&-item:not(${t}-last-item)`]:{marginBottom:e.calc(e.lineWidth).mul(-1).equal()},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function dD(e,t){return{[`&-item:not(${t}-first-item):not(${t}-last-item)`]:{borderRadius:0},[`&-item${t}-first-item:not(${t}-last-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${t}-last-item:not(${t}-first-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function fD(e){const t=`${e.componentCls}-compact-vertical`;return{[t]:Object.assign(Object.assign({},uD(e,t)),dD(e.componentCls,t))}}const mD=e=>{const{componentCls:t,colorPrimaryHover:n,lineWidth:r,calc:o}=e,a=o(r).mul(-1).equal(),i=l=>{const c=`${t}-compact${l?"-vertical":""}-item${t}-primary:not([disabled])`;return{[`${c} + ${c}::before`]:{position:"absolute",top:l?a:0,insetInlineStart:l?0:a,backgroundColor:n,content:'""',width:l?"100%":r,height:l?r:"100%"}}};return Object.assign(Object.assign({},i()),i(!0))},vD=Tc(["Button","compact"],e=>{const t=nO(e);return[X0(t),fD(t),mD(t)]},rO);var pD=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n,r;const{loading:o=!1,prefixCls:a,color:i,variant:l,type:c,danger:u=!1,shape:d="default",size:f,styles:m,disabled:v,className:p,rootClassName:b,children:h,icon:g,iconPosition:y="start",ghost:C=!1,block:x=!1,htmlType:S="button",classNames:w,style:E={},autoInsertSpace:O,autoFocus:$}=e,R=pD(e,["loading","prefixCls","color","variant","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","iconPosition","ghost","block","htmlType","classNames","style","autoInsertSpace","autoFocus"]),I=c||"default",{button:N}=B.useContext(lt),[T,P]=s.useMemo(()=>{if(i&&l)return[i,l];if(c||u){const me=hD[I]||[];return u?["danger",me[1]]:me}return N!=null&&N.color&&(N!=null&&N.variant)?[N.color,N.variant]:["default","outlined"]},[c,i,l,u,N==null?void 0:N.variant,N==null?void 0:N.color]),_=T==="danger"?"dangerous":T,{getPrefixCls:z,direction:j,autoInsertSpace:L,className:F,style:W,classNames:H,styles:A}=Rr("button"),V=(n=O??L)!==null&&n!==void 0?n:!0,K=z("btn",a),[Y,re,J]=lD(K),ae=s.useContext(bo),le=v??ae,te=s.useContext(eO),q=s.useMemo(()=>gD(o),[o]),[X,Q]=s.useState(q.loading),[Z,ne]=s.useState(!1),ie=s.useRef(null),fe=na(t,ie),$e=s.Children.count(h)===1&&!g&&!gv(P),Se=s.useRef(!0);B.useEffect(()=>(Se.current=!1,()=>{Se.current=!0}),[]),s.useLayoutEffect(()=>{let me=null;q.delay>0?me=setTimeout(()=>{me=null,Q(!0)},q.delay):Q(q.loading);function ue(){me&&(clearTimeout(me),me=null)}return ue},[q.delay,q.loading]),s.useEffect(()=>{if(!ie.current||!V)return;const me=ie.current.textContent||"";$e&&_g(me)?Z||ne(!0):Z&&ne(!1)}),s.useEffect(()=>{$&&ie.current&&ie.current.focus()},[]);const oe=B.useCallback(me=>{var ue;if(X||le){me.preventDefault();return}(ue=e.onClick)===null||ue===void 0||ue.call(e,("href"in e,me))},[e.onClick,X,le]),{compactSize:se,compactItemClassnames:ye}=jl(K,j),ce={large:"lg",small:"sm",middle:void 0},we=no(me=>{var ue,Te;return(Te=(ue=f??se)!==null&&ue!==void 0?ue:te)!==null&&Te!==void 0?Te:me}),Oe=we&&(r=ce[we])!==null&&r!==void 0?r:"",Le=X?"loading":g,je=Zt(R,["navigate"]),xe=G(K,re,J,{[`${K}-${d}`]:d!=="default"&&d,[`${K}-${I}`]:I,[`${K}-dangerous`]:u,[`${K}-color-${_}`]:_,[`${K}-variant-${P}`]:P,[`${K}-${Oe}`]:Oe,[`${K}-icon-only`]:!h&&h!==0&&!!Le,[`${K}-background-ghost`]:C&&!gv(P),[`${K}-loading`]:X,[`${K}-two-chinese-chars`]:Z&&V&&!X,[`${K}-block`]:x,[`${K}-rtl`]:j==="rtl",[`${K}-icon-end`]:y==="end"},ye,p,b,F),Pe=Object.assign(Object.assign({},W),E),Ce=G(w==null?void 0:w.icon,H.icon),ve=Object.assign(Object.assign({},(m==null?void 0:m.icon)||{}),A.icon||{}),Ee=g&&!X?B.createElement(zg,{prefixCls:K,className:Ce,style:ve},g):o&&typeof o=="object"&&o.icon?B.createElement(zg,{prefixCls:K,className:Ce,style:ve},o.icon):B.createElement(rL,{existIcon:!!g,prefixCls:K,loading:X,mount:Se.current}),de=h||h===0?nL(h,$e&&V):null;if(je.href!==void 0)return Y(B.createElement("a",Object.assign({},je,{className:G(xe,{[`${K}-disabled`]:le}),href:le?void 0:je.href,style:Pe,onClick:oe,ref:fe,tabIndex:le?-1:0}),Ee,de));let ge=B.createElement("button",Object.assign({},R,{type:S,className:xe,style:Pe,onClick:oe,disabled:le,ref:fe}),Ee,de,ye&&B.createElement(vD,{prefixCls:K}));return gv(P)||(ge=B.createElement(Hf,{component:"Button",disabled:X},ge)),Y(ge)}),rr=yD;rr.Group=eL;rr.__ANT_BUTTON=!0;function Cv(e){return!!(e!=null&&e.then)}const Y0=e=>{const{type:t,children:n,prefixCls:r,buttonProps:o,close:a,autoFocus:i,emitEvent:l,isSilent:c,quitOnNullishReturnValue:u,actionFn:d}=e,f=s.useRef(!1),m=s.useRef(null),[v,p]=El(!1),b=(...y)=>{a==null||a.apply(void 0,y)};s.useEffect(()=>{let y=null;return i&&(y=setTimeout(()=>{var C;(C=m.current)===null||C===void 0||C.focus({preventScroll:!0})})),()=>{y&&clearTimeout(y)}},[]);const h=y=>{Cv(y)&&(p(!0),y.then((...C)=>{p(!1,!0),b.apply(void 0,C),f.current=!1},C=>{if(p(!1,!0),f.current=!1,!(c!=null&&c()))return Promise.reject(C)}))},g=y=>{if(f.current)return;if(f.current=!0,!d){b();return}let C;if(l){if(C=d(y),u&&!Cv(C)){f.current=!1,b(y);return}}else if(d.length)C=d(a),f.current=!1;else if(C=d(),!Cv(C)){b();return}h(C)};return s.createElement(rr,Object.assign({},H0(t),{onClick:g,loading:v,prefixCls:r},o,{ref:m}),n)},Lc=B.createContext({}),{Provider:aO}=Lc,cS=()=>{const{autoFocusButton:e,cancelButtonProps:t,cancelTextLocale:n,isSilent:r,mergedOkCancel:o,rootPrefixCls:a,close:i,onCancel:l,onConfirm:c}=s.useContext(Lc);return o?B.createElement(Y0,{isSilent:r,actionFn:l,close:(...u)=>{i==null||i.apply(void 0,u),c==null||c(!1)},autoFocus:e==="cancel",buttonProps:t,prefixCls:`${a}-btn`},n):null},uS=()=>{const{autoFocusButton:e,close:t,isSilent:n,okButtonProps:r,rootPrefixCls:o,okTextLocale:a,okType:i,onConfirm:l,onOk:c}=s.useContext(Lc);return B.createElement(Y0,{isSilent:n,type:i||"primary",actionFn:c,close:(...u)=>{t==null||t.apply(void 0,u),l==null||l(!0)},autoFocus:e==="ok",buttonProps:r,prefixCls:`${o}-btn`},a)};var iO=s.createContext(null),dS=[];function bD(e,t){var n=s.useState(function(){if(!Bn())return null;var p=document.createElement("div");return p}),r=ee(n,1),o=r[0],a=s.useRef(!1),i=s.useContext(iO),l=s.useState(dS),c=ee(l,2),u=c[0],d=c[1],f=i||(a.current?void 0:function(p){d(function(b){var h=[p].concat(he(b));return h})});function m(){o.parentElement||document.body.appendChild(o),a.current=!0}function v(){var p;(p=o.parentElement)===null||p===void 0||p.removeChild(o),a.current=!1}return Ot(function(){return e?i?i(m):m():v(),v},[e]),Ot(function(){u.length&&(u.forEach(function(p){return p()}),d(dS))},[u]),[o,f]}var Sv;function lO(e){var t="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),n=document.createElement("div");n.id=t;var r=n.style;r.position="absolute",r.left="0",r.top="0",r.width="100px",r.height="100px",r.overflow="scroll";var o,a;if(e){var i=getComputedStyle(e);r.scrollbarColor=i.scrollbarColor,r.scrollbarWidth=i.scrollbarWidth;var l=getComputedStyle(e,"::-webkit-scrollbar"),c=parseInt(l.width,10),u=parseInt(l.height,10);try{var d=c?"width: ".concat(l.width,";"):"",f=u?"height: ".concat(l.height,";"):"";Xo(` +#`.concat(t,`::-webkit-scrollbar { +`).concat(d,` +`).concat(f,` +}`),t)}catch(p){console.error(p),o=c,a=u}}document.body.appendChild(n);var m=e&&o&&!isNaN(o)?o:n.offsetWidth-n.clientWidth,v=e&&a&&!isNaN(a)?a:n.offsetHeight-n.clientHeight;return document.body.removeChild(n),oc(t),{width:m,height:v}}function fS(e){return typeof document>"u"?0:(Sv===void 0&&(Sv=lO()),Sv.width)}function jg(e){return typeof document>"u"||!e||!(e instanceof Element)?{width:0,height:0}:lO(e)}function CD(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}var SD="rc-util-locker-".concat(Date.now()),mS=0;function xD(e){var t=!!e,n=s.useState(function(){return mS+=1,"".concat(SD,"_").concat(mS)}),r=ee(n,1),o=r[0];Ot(function(){if(t){var a=jg(document.body).width,i=CD();Xo(` +html body { + overflow-y: hidden; + `.concat(i?"width: calc(100% - ".concat(a,"px);"):"",` +}`),o)}else oc(o);return function(){oc(o)}},[t,o])}var wD=!1;function $D(e){return wD}var vS=function(t){return t===!1?!1:!Bn()||!t?null:typeof t=="string"?document.querySelector(t):typeof t=="function"?t():t},Q0=s.forwardRef(function(e,t){var n=e.open,r=e.autoLock,o=e.getContainer;e.debug;var a=e.autoDestroy,i=a===void 0?!0:a,l=e.children,c=s.useState(n),u=ee(c,2),d=u[0],f=u[1],m=d||n;s.useEffect(function(){(i||n)&&f(n)},[n,i]);var v=s.useState(function(){return vS(o)}),p=ee(v,2),b=p[0],h=p[1];s.useEffect(function(){var I=vS(o);h(I??null)});var g=bD(m&&!b),y=ee(g,2),C=y[0],x=y[1],S=b??C;xD(r&&n&&Bn()&&(S===C||S===document.body));var w=null;if(l&&Lo(l)&&t){var E=l;w=E.ref}var O=na(w,t);if(!m||!Bn()||b===void 0)return null;var $=S===!1||$D(),R=l;return t&&(R=s.cloneElement(l,{ref:O})),s.createElement(iO.Provider,{value:x},$?R:Yr.createPortal(R,S))}),sO=s.createContext({});function ED(){var e=k({},xc);return e.useId}var pS=0,gS=ED();const Qf=gS?function(t){var n=gS();return t||n}:function(t){var n=s.useState("ssr-id"),r=ee(n,2),o=r[0],a=r[1];return s.useEffect(function(){var i=pS;pS+=1,a("rc_unique_".concat(i))},[]),t||o};function hS(e,t,n){var r=t;return!r&&n&&(r="".concat(e,"-").concat(n)),r}function yS(e,t){var n=e["page".concat(t?"Y":"X","Offset")],r="scroll".concat(t?"Top":"Left");if(typeof n!="number"){var o=e.document;n=o.documentElement[r],typeof n!="number"&&(n=o.body[r])}return n}function OD(e){var t=e.getBoundingClientRect(),n={left:t.left,top:t.top},r=e.ownerDocument,o=r.defaultView||r.parentWindow;return n.left+=yS(o),n.top+=yS(o,!0),n}const RD=s.memo(function(e){var t=e.children;return t},function(e,t){var n=t.shouldUpdate;return!n});var PD={width:0,height:0,overflow:"hidden",outline:"none"},ID={outline:"none"},cO=B.forwardRef(function(e,t){var n=e.prefixCls,r=e.className,o=e.style,a=e.title,i=e.ariaId,l=e.footer,c=e.closable,u=e.closeIcon,d=e.onClose,f=e.children,m=e.bodyStyle,v=e.bodyProps,p=e.modalRender,b=e.onMouseDown,h=e.onMouseUp,g=e.holderRef,y=e.visible,C=e.forceRender,x=e.width,S=e.height,w=e.classNames,E=e.styles,O=B.useContext(sO),$=O.panel,R=na(g,$),I=s.useRef(),N=s.useRef();B.useImperativeHandle(t,function(){return{focus:function(){var H;(H=I.current)===null||H===void 0||H.focus({preventScroll:!0})},changeActive:function(H){var A=document,V=A.activeElement;H&&V===N.current?I.current.focus({preventScroll:!0}):!H&&V===I.current&&N.current.focus({preventScroll:!0})}}});var T={};x!==void 0&&(T.width=x),S!==void 0&&(T.height=S);var P=l?B.createElement("div",{className:G("".concat(n,"-footer"),w==null?void 0:w.footer),style:k({},E==null?void 0:E.footer)},l):null,M=a?B.createElement("div",{className:G("".concat(n,"-header"),w==null?void 0:w.header),style:k({},E==null?void 0:E.header)},B.createElement("div",{className:"".concat(n,"-title"),id:i},a)):null,_=s.useMemo(function(){return We(c)==="object"&&c!==null?c:c?{closeIcon:u??B.createElement("span",{className:"".concat(n,"-close-x")})}:{}},[c,u,n]),z=tr(_,!0),j=We(c)==="object"&&c.disabled,L=c?B.createElement("button",pe({type:"button",onClick:d,"aria-label":"Close"},z,{className:"".concat(n,"-close"),disabled:j}),_.closeIcon):null,F=B.createElement("div",{className:G("".concat(n,"-content"),w==null?void 0:w.content),style:E==null?void 0:E.content},L,M,B.createElement("div",pe({className:G("".concat(n,"-body"),w==null?void 0:w.body),style:k(k({},m),E==null?void 0:E.body)},v),f),P);return B.createElement("div",{key:"dialog-element",role:"dialog","aria-labelledby":a?i:null,"aria-modal":"true",ref:R,style:k(k({},o),T),className:G(n,r),onMouseDown:b,onMouseUp:h},B.createElement("div",{ref:I,tabIndex:0,style:ID},B.createElement(RD,{shouldUpdate:y||C},p?p(F):F)),B.createElement("div",{tabIndex:0,ref:N,style:PD}))}),uO=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.title,o=e.style,a=e.className,i=e.visible,l=e.forceRender,c=e.destroyOnClose,u=e.motionName,d=e.ariaId,f=e.onVisibleChanged,m=e.mousePosition,v=s.useRef(),p=s.useState(),b=ee(p,2),h=b[0],g=b[1],y={};h&&(y.transformOrigin=h);function C(){var x=OD(v.current);g(m&&(m.x||m.y)?"".concat(m.x-x.left,"px ").concat(m.y-x.top,"px"):"")}return s.createElement(to,{visible:i,onVisibleChanged:f,onAppearPrepare:C,onEnterPrepare:C,forceRender:l,motionName:u,removeOnLeave:c,ref:v},function(x,S){var w=x.className,E=x.style;return s.createElement(cO,pe({},e,{ref:t,title:r,ariaId:d,prefixCls:n,holderRef:S,style:k(k(k({},E),o),y),className:G(a,w)}))})});uO.displayName="Content";var ND=function(t){var n=t.prefixCls,r=t.style,o=t.visible,a=t.maskProps,i=t.motionName,l=t.className;return s.createElement(to,{key:"mask",visible:o,motionName:i,leavedClassName:"".concat(n,"-mask-hidden")},function(c,u){var d=c.className,f=c.style;return s.createElement("div",pe({ref:u,style:k(k({},f),r),className:G("".concat(n,"-mask"),d,l)},a))})},TD=function(t){var n=t.prefixCls,r=n===void 0?"rc-dialog":n,o=t.zIndex,a=t.visible,i=a===void 0?!1:a,l=t.keyboard,c=l===void 0?!0:l,u=t.focusTriggerAfterClose,d=u===void 0?!0:u,f=t.wrapStyle,m=t.wrapClassName,v=t.wrapProps,p=t.onClose,b=t.afterOpenChange,h=t.afterClose,g=t.transitionName,y=t.animation,C=t.closable,x=C===void 0?!0:C,S=t.mask,w=S===void 0?!0:S,E=t.maskTransitionName,O=t.maskAnimation,$=t.maskClosable,R=$===void 0?!0:$,I=t.maskStyle,N=t.maskProps,T=t.rootClassName,P=t.classNames,M=t.styles,_=s.useRef(),z=s.useRef(),j=s.useRef(),L=s.useState(i),F=ee(L,2),W=F[0],H=F[1],A=Qf();function V(){rg(z.current,document.activeElement)||(_.current=document.activeElement)}function K(){if(!rg(z.current,document.activeElement)){var Z;(Z=j.current)===null||Z===void 0||Z.focus()}}function Y(Z){if(Z)K();else{if(H(!1),w&&_.current&&d){try{_.current.focus({preventScroll:!0})}catch{}_.current=null}W&&(h==null||h())}b==null||b(Z)}function re(Z){p==null||p(Z)}var J=s.useRef(!1),ae=s.useRef(),le=function(){clearTimeout(ae.current),J.current=!0},te=function(){ae.current=setTimeout(function(){J.current=!1})},q=null;R&&(q=function(ne){J.current?J.current=!1:z.current===ne.target&&re(ne)});function X(Z){if(c&&Z.keyCode===ke.ESC){Z.stopPropagation(),re(Z);return}i&&Z.keyCode===ke.TAB&&j.current.changeActive(!Z.shiftKey)}s.useEffect(function(){i&&(H(!0),V())},[i]),s.useEffect(function(){return function(){clearTimeout(ae.current)}},[]);var Q=k(k(k({zIndex:o},f),M==null?void 0:M.wrapper),{},{display:W?null:"none"});return s.createElement("div",pe({className:G("".concat(r,"-root"),T)},tr(t,{data:!0})),s.createElement(ND,{prefixCls:r,visible:w&&i,motionName:hS(r,E,O),style:k(k({zIndex:o},I),M==null?void 0:M.mask),maskProps:N,className:P==null?void 0:P.mask}),s.createElement("div",pe({tabIndex:-1,onKeyDown:X,className:G("".concat(r,"-wrap"),m,P==null?void 0:P.wrapper),ref:z,onClick:q,style:Q},v),s.createElement(uO,pe({},t,{onMouseDown:le,onMouseUp:te,ref:j,closable:x,ariaId:A,prefixCls:r,visible:i&&W,onClose:re,onVisibleChanged:Y,motionName:hS(r,g,y)}))))},dO=function(t){var n=t.visible,r=t.getContainer,o=t.forceRender,a=t.destroyOnClose,i=a===void 0?!1:a,l=t.afterClose,c=t.panelRef,u=s.useState(n),d=ee(u,2),f=d[0],m=d[1],v=s.useMemo(function(){return{panel:c}},[c]);return s.useEffect(function(){n&&m(!0)},[n]),!o&&i&&!f?null:s.createElement(sO.Provider,{value:v},s.createElement(Q0,{open:n||o||f,autoDestroy:!1,getContainer:r,autoLock:n||f},s.createElement(TD,pe({},t,{destroyOnClose:i,afterClose:function(){l==null||l(),m(!1)}}))))};dO.displayName="Dialog";var ei="RC_FORM_INTERNAL_HOOKS",Qt=function(){rn(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},Ol=s.createContext({getFieldValue:Qt,getFieldsValue:Qt,getFieldError:Qt,getFieldWarning:Qt,getFieldsError:Qt,isFieldsTouched:Qt,isFieldTouched:Qt,isFieldValidating:Qt,isFieldsValidating:Qt,resetFields:Qt,setFields:Qt,setFieldValue:Qt,setFieldsValue:Qt,validateFields:Qt,submit:Qt,getInternalHooks:function(){return Qt(),{dispatch:Qt,initEntityValue:Qt,registerField:Qt,useSubscribe:Qt,setInitialValues:Qt,destroyForm:Qt,setCallbacks:Qt,registerWatch:Qt,getFields:Qt,setValidateMessages:Qt,setPreserve:Qt,getInitialValue:Qt}}}),Ad=s.createContext(null);function Lg(e){return e==null?[]:Array.isArray(e)?e:[e]}function MD(e){return e&&!!e._init}function Dg(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var Bg=Dg();function _D(e){try{return Function.toString.call(e).indexOf("[native code]")!==-1}catch{return typeof e=="function"}}function zD(e,t,n){if(E0())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&tc(o,n.prototype),o}function kg(e){var t=typeof Map=="function"?new Map:void 0;return kg=function(r){if(r===null||!_D(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(t!==void 0){if(t.has(r))return t.get(r);t.set(r,o)}function o(){return zD(r,arguments,nc(this).constructor)}return o.prototype=Object.create(r.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),tc(o,r)},kg(e)}var jD=/%[sdj%]/g,LD=function(){};function Ag(e){if(!e||!e.length)return null;var t={};return e.forEach(function(n){var r=n.field;t[r]=t[r]||[],t[r].push(n)}),t}function zr(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=a)return l;switch(l){case"%s":return String(n[o++]);case"%d":return Number(n[o++]);case"%j":try{return JSON.stringify(n[o++])}catch{return"[Circular]"}break;default:return l}});return i}return e}function DD(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function zn(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||DD(t)&&typeof e=="string"&&!e)}function BD(e,t,n){var r=[],o=0,a=e.length;function i(l){r.push.apply(r,he(l||[])),o++,o===a&&n(r)}e.forEach(function(l){t(l,i)})}function bS(e,t,n){var r=0,o=e.length;function a(i){if(i&&i.length){n(i);return}var l=r;r=r+1,lt.max?o.push(zr(a.messages[f].max,t.fullField,t.max)):l&&c&&(dt.max)&&o.push(zr(a.messages[f].range,t.fullField,t.min,t.max))},fO=function(t,n,r,o,a,i){t.required&&(!r.hasOwnProperty(t.field)||zn(n,i||t.type))&&o.push(zr(a.messages.required,t.fullField))},xu;const UD=function(){if(xu)return xu;var e="[a-fA-F\\d:]",t=function(w){return w&&w.includeBoundaries?"(?:(?<=\\s|^)(?=".concat(e,")|(?<=").concat(e,")(?=\\s|$))"):""},n="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",r="[a-fA-F\\d]{1,4}",o=["(?:".concat(r,":){7}(?:").concat(r,"|:)"),"(?:".concat(r,":){6}(?:").concat(n,"|:").concat(r,"|:)"),"(?:".concat(r,":){5}(?::").concat(n,"|(?::").concat(r,"){1,2}|:)"),"(?:".concat(r,":){4}(?:(?::").concat(r,"){0,1}:").concat(n,"|(?::").concat(r,"){1,3}|:)"),"(?:".concat(r,":){3}(?:(?::").concat(r,"){0,2}:").concat(n,"|(?::").concat(r,"){1,4}|:)"),"(?:".concat(r,":){2}(?:(?::").concat(r,"){0,3}:").concat(n,"|(?::").concat(r,"){1,5}|:)"),"(?:".concat(r,":){1}(?:(?::").concat(r,"){0,4}:").concat(n,"|(?::").concat(r,"){1,6}|:)"),"(?::(?:(?::".concat(r,"){0,5}:").concat(n,"|(?::").concat(r,"){1,7}|:))")],a="(?:%[0-9a-zA-Z]{1,})?",i="(?:".concat(o.join("|"),")").concat(a),l=new RegExp("(?:^".concat(n,"$)|(?:^").concat(i,"$)")),c=new RegExp("^".concat(n,"$")),u=new RegExp("^".concat(i,"$")),d=function(w){return w&&w.exact?l:new RegExp("(?:".concat(t(w)).concat(n).concat(t(w),")|(?:").concat(t(w)).concat(i).concat(t(w),")"),"g")};d.v4=function(S){return S&&S.exact?c:new RegExp("".concat(t(S)).concat(n).concat(t(S)),"g")},d.v6=function(S){return S&&S.exact?u:new RegExp("".concat(t(S)).concat(i).concat(t(S)),"g")};var f="(?:(?:[a-z]+:)?//)",m="(?:\\S+(?::\\S*)?@)?",v=d.v4().source,p=d.v6().source,b="(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)",h="(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*",g="(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))",y="(?::\\d{2,5})?",C='(?:[/?#][^\\s"]*)?',x="(?:".concat(f,"|www\\.)").concat(m,"(?:localhost|").concat(v,"|").concat(p,"|").concat(b).concat(h).concat(g,")").concat(y).concat(C);return xu=new RegExp("(?:^".concat(x,"$)"),"i"),xu};var wS={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},vs={integer:function(t){return vs.number(t)&&parseInt(t,10)===t},float:function(t){return vs.number(t)&&!vs.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch{return!1}},date:function(t){return typeof t.getTime=="function"&&typeof t.getMonth=="function"&&typeof t.getYear=="function"&&!isNaN(t.getTime())},number:function(t){return isNaN(t)?!1:typeof t=="number"},object:function(t){return We(t)==="object"&&!vs.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(wS.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(UD())},hex:function(t){return typeof t=="string"&&!!t.match(wS.hex)}},GD=function(t,n,r,o,a){if(t.required&&n===void 0){fO(t,n,r,o,a);return}var i=["integer","float","array","regexp","object","method","email","number","date","url","hex"],l=t.type;i.indexOf(l)>-1?vs[l](n)||o.push(zr(a.messages.types[l],t.fullField,t.type)):l&&We(n)!==t.type&&o.push(zr(a.messages.types[l],t.fullField,t.type))},qD=function(t,n,r,o,a){(/^\s+$/.test(n)||n==="")&&o.push(zr(a.messages.whitespace,t.fullField))};const jt={required:fO,whitespace:qD,type:GD,range:KD,enum:VD,pattern:WD};var XD=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a)}r(i)},YD=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(n==null&&!t.required)return r();jt.required(t,n,o,i,a,"array"),n!=null&&(jt.type(t,n,o,i,a),jt.range(t,n,o,i,a))}r(i)},QD=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),n!==void 0&&jt.type(t,n,o,i,a)}r(i)},JD=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n,"date")&&!t.required)return r();if(jt.required(t,n,o,i,a),!zn(n,"date")){var c;n instanceof Date?c=n:c=new Date(n),jt.type(t,c,o,i,a),c&&jt.range(t,c.getTime(),o,i,a)}}r(i)},ZD="enum",e6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),n!==void 0&&jt[ZD](t,n,o,i,a)}r(i)},t6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),n!==void 0&&(jt.type(t,n,o,i,a),jt.range(t,n,o,i,a))}r(i)},n6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),n!==void 0&&(jt.type(t,n,o,i,a),jt.range(t,n,o,i,a))}r(i)},r6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),n!==void 0&&jt.type(t,n,o,i,a)}r(i)},o6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(n===""&&(n=void 0),zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),n!==void 0&&(jt.type(t,n,o,i,a),jt.range(t,n,o,i,a))}r(i)},a6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),n!==void 0&&jt.type(t,n,o,i,a)}r(i)},i6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n,"string")&&!t.required)return r();jt.required(t,n,o,i,a),zn(n,"string")||jt.pattern(t,n,o,i,a)}r(i)},l6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n)&&!t.required)return r();jt.required(t,n,o,i,a),zn(n)||jt.type(t,n,o,i,a)}r(i)},s6=function(t,n,r,o,a){var i=[],l=Array.isArray(n)?"array":We(n);jt.required(t,n,o,i,a,l),r(i)},c6=function(t,n,r,o,a){var i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(zn(n,"string")&&!t.required)return r();jt.required(t,n,o,i,a,"string"),zn(n,"string")||(jt.type(t,n,o,i,a),jt.range(t,n,o,i,a),jt.pattern(t,n,o,i,a),t.whitespace===!0&&jt.whitespace(t,n,o,i,a))}r(i)},xv=function(t,n,r,o,a){var i=t.type,l=[],c=t.required||!t.required&&o.hasOwnProperty(t.field);if(c){if(zn(n,i)&&!t.required)return r();jt.required(t,n,o,l,a,i),zn(n,i)||jt.type(t,n,o,l,a)}r(l)};const Is={string:c6,method:r6,number:o6,boolean:QD,regexp:l6,integer:n6,float:t6,array:YD,object:a6,enum:e6,pattern:i6,date:JD,url:xv,hex:xv,email:xv,required:s6,any:XD};var Dc=function(){function e(t){mn(this,e),D(this,"rules",null),D(this,"_messages",Bg),this.define(t)}return vn(e,[{key:"define",value:function(n){var r=this;if(!n)throw new Error("Cannot configure a schema with no rules");if(We(n)!=="object"||Array.isArray(n))throw new Error("Rules must be an object");this.rules={},Object.keys(n).forEach(function(o){var a=n[o];r.rules[o]=Array.isArray(a)?a:[a]})}},{key:"messages",value:function(n){return n&&(this._messages=xS(Dg(),n)),this._messages}},{key:"validate",value:function(n){var r=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},i=n,l=o,c=a;if(typeof l=="function"&&(c=l,l={}),!this.rules||Object.keys(this.rules).length===0)return c&&c(null,i),Promise.resolve(i);function u(p){var b=[],h={};function g(C){if(Array.isArray(C)){var x;b=(x=b).concat.apply(x,he(C))}else b.push(C)}for(var y=0;y0&&arguments[0]!==void 0?arguments[0]:[],O=Array.isArray(E)?E:[E];!l.suppressWarning&&O.length&&e.warning("async-validator:",O),O.length&&h.message!==void 0&&(O=[].concat(h.message));var $=O.map(SS(h,i));if(l.first&&$.length)return v[h.field]=1,b($);if(!g)b($);else{if(h.required&&!p.value)return h.message!==void 0?$=[].concat(h.message).map(SS(h,i)):l.error&&($=[l.error(h,zr(l.messages.required,h.field))]),b($);var R={};h.defaultField&&Object.keys(p.value).map(function(T){R[T]=h.defaultField}),R=k(k({},R),p.rule.fields);var I={};Object.keys(R).forEach(function(T){var P=R[T],M=Array.isArray(P)?P:[P];I[T]=M.map(y.bind(null,T))});var N=new e(I);N.messages(l.messages),p.rule.options&&(p.rule.options.messages=l.messages,p.rule.options.error=l.error),N.validate(p.value,p.rule.options||l,function(T){var P=[];$&&$.length&&P.push.apply(P,he($)),T&&T.length&&P.push.apply(P,he(T)),b(P.length?P:null)})}}var x;if(h.asyncValidator)x=h.asyncValidator(h,p.value,C,p.source,l);else if(h.validator){try{x=h.validator(h,p.value,C,p.source,l)}catch(E){var S,w;(S=(w=console).error)===null||S===void 0||S.call(w,E),l.suppressValidatorError||setTimeout(function(){throw E},0),C(E.message)}x===!0?C():x===!1?C(typeof h.message=="function"?h.message(h.fullField||h.field):h.message||"".concat(h.fullField||h.field," fails")):x instanceof Array?C(x):x instanceof Error&&C(x.message)}x&&x.then&&x.then(function(){return C()},function(E){return C(E)})},function(p){u(p)},i)}},{key:"getType",value:function(n){if(n.type===void 0&&n.pattern instanceof RegExp&&(n.type="pattern"),typeof n.validator!="function"&&n.type&&!Is.hasOwnProperty(n.type))throw new Error(zr("Unknown rule type %s",n.type));return n.type||"string"}},{key:"getValidationMethod",value:function(n){if(typeof n.validator=="function")return n.validator;var r=Object.keys(n),o=r.indexOf("message");return o!==-1&&r.splice(o,1),r.length===1&&r[0]==="required"?Is.required:Is[this.getType(n)]||void 0}}]),e}();D(Dc,"register",function(t,n){if(typeof n!="function")throw new Error("Cannot register a validator by type, validator is not a function");Is[t]=n});D(Dc,"warning",LD);D(Dc,"messages",Bg);D(Dc,"validators",Is);var Ir="'${name}' is not a valid ${type}",mO={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:Ir,method:Ir,array:Ir,object:Ir,number:Ir,date:Ir,boolean:Ir,integer:Ir,float:Ir,regexp:Ir,email:Ir,url:Ir,hex:Ir},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},$S=Dc;function u6(e,t){return e.replace(/\\?\$\{\w+\}/g,function(n){if(n.startsWith("\\"))return n.slice(1);var r=n.slice(2,-1);return t[r]})}var ES="CODE_LOGIC_ERROR";function Fg(e,t,n,r,o){return Hg.apply(this,arguments)}function Hg(){return Hg=lr(Ht().mark(function e(t,n,r,o,a){var i,l,c,u,d,f,m,v,p;return Ht().wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return i=k({},r),delete i.ruleIndex,$S.warning=function(){},i.validator&&(l=i.validator,i.validator=function(){try{return l.apply(void 0,arguments)}catch(g){return console.error(g),Promise.reject(ES)}}),c=null,i&&i.type==="array"&&i.defaultField&&(c=i.defaultField,delete i.defaultField),u=new $S(D({},t,[i])),d=Qi(mO,o.validateMessages),u.messages(d),f=[],h.prev=10,h.next=13,Promise.resolve(u.validate(D({},t,n),k({},o)));case 13:h.next=18;break;case 15:h.prev=15,h.t0=h.catch(10),h.t0.errors&&(f=h.t0.errors.map(function(g,y){var C=g.message,x=C===ES?d.default:C;return s.isValidElement(x)?s.cloneElement(x,{key:"error_".concat(y)}):x}));case 18:if(!(!f.length&&c)){h.next=23;break}return h.next=21,Promise.all(n.map(function(g,y){return Fg("".concat(t,".").concat(y),g,c,o,a)}));case 21:return m=h.sent,h.abrupt("return",m.reduce(function(g,y){return[].concat(he(g),he(y))},[]));case 23:return v=k(k({},r),{},{name:t,enum:(r.enum||[]).join(", ")},a),p=f.map(function(g){return typeof g=="string"?u6(g,v):g}),h.abrupt("return",p);case 26:case"end":return h.stop()}},e,null,[[10,15]])})),Hg.apply(this,arguments)}function d6(e,t,n,r,o,a){var i=e.join("."),l=n.map(function(d,f){var m=d.validator,v=k(k({},d),{},{ruleIndex:f});return m&&(v.validator=function(p,b,h){var g=!1,y=function(){for(var S=arguments.length,w=new Array(S),E=0;E2&&arguments[2]!==void 0?arguments[2]:!1;return e&&e.some(function(r){return vO(t,r,n)})}function vO(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return!e||!t||!n&&e.length!==t.length?!1:t.every(function(r,o){return e[o]===r})}function v6(e,t){if(e===t)return!0;if(!e&&t||e&&!t||!e||!t||We(e)!=="object"||We(t)!=="object")return!1;var n=Object.keys(e),r=Object.keys(t),o=new Set([].concat(n,r));return he(o).every(function(a){var i=e[a],l=t[a];return typeof i=="function"&&typeof l=="function"?!0:i===l})}function p6(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&We(t.target)==="object"&&e in t.target?t.target[e]:t}function RS(e,t,n){var r=e.length;if(t<0||t>=r||n<0||n>=r)return e;var o=e[t],a=t-n;return a>0?[].concat(he(e.slice(0,n)),[o],he(e.slice(n,t)),he(e.slice(t+1,r))):a<0?[].concat(he(e.slice(0,t)),he(e.slice(t+1,n+1)),[o],he(e.slice(n+1,r))):e}var g6=["name"],Ar=[];function wv(e,t,n,r,o,a){return typeof e=="function"?e(t,n,"source"in a?{source:a.source}:{}):r!==o}var J0=function(e){Zr(n,e);var t=eo(n);function n(r){var o;if(mn(this,n),o=t.call(this,r),D(Me(o),"state",{resetCount:0}),D(Me(o),"cancelRegisterFunc",null),D(Me(o),"mounted",!1),D(Me(o),"touched",!1),D(Me(o),"dirty",!1),D(Me(o),"validatePromise",void 0),D(Me(o),"prevValidating",void 0),D(Me(o),"errors",Ar),D(Me(o),"warnings",Ar),D(Me(o),"cancelRegister",function(){var c=o.props,u=c.preserve,d=c.isListField,f=c.name;o.cancelRegisterFunc&&o.cancelRegisterFunc(d,u,bn(f)),o.cancelRegisterFunc=null}),D(Me(o),"getNamePath",function(){var c=o.props,u=c.name,d=c.fieldContext,f=d.prefixName,m=f===void 0?[]:f;return u!==void 0?[].concat(he(m),he(u)):[]}),D(Me(o),"getRules",function(){var c=o.props,u=c.rules,d=u===void 0?[]:u,f=c.fieldContext;return d.map(function(m){return typeof m=="function"?m(f):m})}),D(Me(o),"refresh",function(){o.mounted&&o.setState(function(c){var u=c.resetCount;return{resetCount:u+1}})}),D(Me(o),"metaCache",null),D(Me(o),"triggerMetaEvent",function(c){var u=o.props.onMetaChange;if(u){var d=k(k({},o.getMeta()),{},{destroy:c});Do(o.metaCache,d)||u(d),o.metaCache=d}else o.metaCache=null}),D(Me(o),"onStoreChange",function(c,u,d){var f=o.props,m=f.shouldUpdate,v=f.dependencies,p=v===void 0?[]:v,b=f.onReset,h=d.store,g=o.getNamePath(),y=o.getValue(c),C=o.getValue(h),x=u&&sl(u,g);switch(d.type==="valueUpdate"&&d.source==="external"&&!Do(y,C)&&(o.touched=!0,o.dirty=!0,o.validatePromise=null,o.errors=Ar,o.warnings=Ar,o.triggerMetaEvent()),d.type){case"reset":if(!u||x){o.touched=!1,o.dirty=!1,o.validatePromise=void 0,o.errors=Ar,o.warnings=Ar,o.triggerMetaEvent(),b==null||b(),o.refresh();return}break;case"remove":{if(m&&wv(m,c,h,y,C,d)){o.reRender();return}break}case"setField":{var S=d.data;if(x){"touched"in S&&(o.touched=S.touched),"validating"in S&&!("originRCField"in S)&&(o.validatePromise=S.validating?Promise.resolve([]):null),"errors"in S&&(o.errors=S.errors||Ar),"warnings"in S&&(o.warnings=S.warnings||Ar),o.dirty=!0,o.triggerMetaEvent(),o.reRender();return}else if("value"in S&&sl(u,g,!0)){o.reRender();return}if(m&&!g.length&&wv(m,c,h,y,C,d)){o.reRender();return}break}case"dependenciesUpdate":{var w=p.map(bn);if(w.some(function(E){return sl(d.relatedFields,E)})){o.reRender();return}break}default:if(x||(!p.length||g.length||m)&&wv(m,c,h,y,C,d)){o.reRender();return}break}m===!0&&o.reRender()}),D(Me(o),"validateRules",function(c){var u=o.getNamePath(),d=o.getValue(),f=c||{},m=f.triggerName,v=f.validateOnly,p=v===void 0?!1:v,b=Promise.resolve().then(lr(Ht().mark(function h(){var g,y,C,x,S,w,E;return Ht().wrap(function($){for(;;)switch($.prev=$.next){case 0:if(o.mounted){$.next=2;break}return $.abrupt("return",[]);case 2:if(g=o.props,y=g.validateFirst,C=y===void 0?!1:y,x=g.messageVariables,S=g.validateDebounce,w=o.getRules(),m&&(w=w.filter(function(R){return R}).filter(function(R){var I=R.validateTrigger;if(!I)return!0;var N=Lg(I);return N.includes(m)})),!(S&&m)){$.next=10;break}return $.next=8,new Promise(function(R){setTimeout(R,S)});case 8:if(o.validatePromise===b){$.next=10;break}return $.abrupt("return",[]);case 10:return E=d6(u,d,w,c,C,x),E.catch(function(R){return R}).then(function(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ar;if(o.validatePromise===b){var I;o.validatePromise=null;var N=[],T=[];(I=R.forEach)===null||I===void 0||I.call(R,function(P){var M=P.rule.warningOnly,_=P.errors,z=_===void 0?Ar:_;M?T.push.apply(T,he(z)):N.push.apply(N,he(z))}),o.errors=N,o.warnings=T,o.triggerMetaEvent(),o.reRender()}}),$.abrupt("return",E);case 13:case"end":return $.stop()}},h)})));return p||(o.validatePromise=b,o.dirty=!0,o.errors=Ar,o.warnings=Ar,o.triggerMetaEvent(),o.reRender()),b}),D(Me(o),"isFieldValidating",function(){return!!o.validatePromise}),D(Me(o),"isFieldTouched",function(){return o.touched}),D(Me(o),"isFieldDirty",function(){if(o.dirty||o.props.initialValue!==void 0)return!0;var c=o.props.fieldContext,u=c.getInternalHooks(ei),d=u.getInitialValue;return d(o.getNamePath())!==void 0}),D(Me(o),"getErrors",function(){return o.errors}),D(Me(o),"getWarnings",function(){return o.warnings}),D(Me(o),"isListField",function(){return o.props.isListField}),D(Me(o),"isList",function(){return o.props.isList}),D(Me(o),"isPreserve",function(){return o.props.preserve}),D(Me(o),"getMeta",function(){o.prevValidating=o.isFieldValidating();var c={touched:o.isFieldTouched(),validating:o.prevValidating,errors:o.errors,warnings:o.warnings,name:o.getNamePath(),validated:o.validatePromise===null};return c}),D(Me(o),"getOnlyChild",function(c){if(typeof c=="function"){var u=o.getMeta();return k(k({},o.getOnlyChild(c(o.getControlled(),u,o.props.fieldContext))),{},{isFunction:!0})}var d=ur(c);return d.length!==1||!s.isValidElement(d[0])?{child:d,isFunction:!1}:{child:d[0],isFunction:!1}}),D(Me(o),"getValue",function(c){var u=o.props.fieldContext.getFieldsValue,d=o.getNamePath();return _r(c||u(!0),d)}),D(Me(o),"getControlled",function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},u=o.props,d=u.name,f=u.trigger,m=u.validateTrigger,v=u.getValueFromEvent,p=u.normalize,b=u.valuePropName,h=u.getValueProps,g=u.fieldContext,y=m!==void 0?m:g.validateTrigger,C=o.getNamePath(),x=g.getInternalHooks,S=g.getFieldsValue,w=x(ei),E=w.dispatch,O=o.getValue(),$=h||function(P){return D({},b,P)},R=c[f],I=d!==void 0?$(O):{},N=k(k({},c),I);N[f]=function(){o.touched=!0,o.dirty=!0,o.triggerMetaEvent();for(var P,M=arguments.length,_=new Array(M),z=0;z=0&&R<=I.length?(d.keys=[].concat(he(d.keys.slice(0,R)),[d.id],he(d.keys.slice(R))),C([].concat(he(I.slice(0,R)),[$],he(I.slice(R))))):(d.keys=[].concat(he(d.keys),[d.id]),C([].concat(he(I),[$]))),d.id+=1},remove:function($){var R=S(),I=new Set(Array.isArray($)?$:[$]);I.size<=0||(d.keys=d.keys.filter(function(N,T){return!I.has(T)}),C(R.filter(function(N,T){return!I.has(T)})))},move:function($,R){if($!==R){var I=S();$<0||$>=I.length||R<0||R>=I.length||(d.keys=RS(d.keys,$,R),C(RS(I,$,R)))}}},E=y||[];return Array.isArray(E)||(E=[]),r(E.map(function(O,$){var R=d.keys[$];return R===void 0&&(d.keys[$]=d.id,R=d.keys[$],d.id+=1),{name:$,key:R,isListField:!0}}),w,h)})))}function y6(e){var t=!1,n=e.length,r=[];return e.length?new Promise(function(o,a){e.forEach(function(i,l){i.catch(function(c){return t=!0,c}).then(function(c){n-=1,r[l]=c,!(n>0)&&(t&&a(r),o(r))})})}):Promise.resolve([])}var gO="__@field_split__";function $v(e){return e.map(function(t){return"".concat(We(t),":").concat(t)}).join(gO)}var Ti=function(){function e(){mn(this,e),D(this,"kvs",new Map)}return vn(e,[{key:"set",value:function(n,r){this.kvs.set($v(n),r)}},{key:"get",value:function(n){return this.kvs.get($v(n))}},{key:"update",value:function(n,r){var o=this.get(n),a=r(o);a?this.set(n,a):this.delete(n)}},{key:"delete",value:function(n){this.kvs.delete($v(n))}},{key:"map",value:function(n){return he(this.kvs.entries()).map(function(r){var o=ee(r,2),a=o[0],i=o[1],l=a.split(gO);return n({key:l.map(function(c){var u=c.match(/^([^:]*):(.*)$/),d=ee(u,3),f=d[1],m=d[2];return f==="number"?Number(m):m}),value:i})})}},{key:"toJSON",value:function(){var n={};return this.map(function(r){var o=r.key,a=r.value;return n[o.join(".")]=a,null}),n}}]),e}(),b6=["name"],C6=vn(function e(t){var n=this;mn(this,e),D(this,"formHooked",!1),D(this,"forceRootUpdate",void 0),D(this,"subscribable",!0),D(this,"store",{}),D(this,"fieldEntities",[]),D(this,"initialValues",{}),D(this,"callbacks",{}),D(this,"validateMessages",null),D(this,"preserve",null),D(this,"lastValidatePromise",null),D(this,"getForm",function(){return{getFieldValue:n.getFieldValue,getFieldsValue:n.getFieldsValue,getFieldError:n.getFieldError,getFieldWarning:n.getFieldWarning,getFieldsError:n.getFieldsError,isFieldsTouched:n.isFieldsTouched,isFieldTouched:n.isFieldTouched,isFieldValidating:n.isFieldValidating,isFieldsValidating:n.isFieldsValidating,resetFields:n.resetFields,setFields:n.setFields,setFieldValue:n.setFieldValue,setFieldsValue:n.setFieldsValue,validateFields:n.validateFields,submit:n.submit,_init:!0,getInternalHooks:n.getInternalHooks}}),D(this,"getInternalHooks",function(r){return r===ei?(n.formHooked=!0,{dispatch:n.dispatch,initEntityValue:n.initEntityValue,registerField:n.registerField,useSubscribe:n.useSubscribe,setInitialValues:n.setInitialValues,destroyForm:n.destroyForm,setCallbacks:n.setCallbacks,setValidateMessages:n.setValidateMessages,getFields:n.getFields,setPreserve:n.setPreserve,getInitialValue:n.getInitialValue,registerWatch:n.registerWatch}):(rn(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),D(this,"useSubscribe",function(r){n.subscribable=r}),D(this,"prevWithoutPreserves",null),D(this,"setInitialValues",function(r,o){if(n.initialValues=r||{},o){var a,i=Qi(r,n.store);(a=n.prevWithoutPreserves)===null||a===void 0||a.map(function(l){var c=l.key;i=co(i,c,_r(r,c))}),n.prevWithoutPreserves=null,n.updateStore(i)}}),D(this,"destroyForm",function(r){if(r)n.updateStore({});else{var o=new Ti;n.getFieldEntities(!0).forEach(function(a){n.isMergedPreserve(a.isPreserve())||o.set(a.getNamePath(),!0)}),n.prevWithoutPreserves=o}}),D(this,"getInitialValue",function(r){var o=_r(n.initialValues,r);return r.length?Qi(o):o}),D(this,"setCallbacks",function(r){n.callbacks=r}),D(this,"setValidateMessages",function(r){n.validateMessages=r}),D(this,"setPreserve",function(r){n.preserve=r}),D(this,"watchList",[]),D(this,"registerWatch",function(r){return n.watchList.push(r),function(){n.watchList=n.watchList.filter(function(o){return o!==r})}}),D(this,"notifyWatch",function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(n.watchList.length){var o=n.getFieldsValue(),a=n.getFieldsValue(!0);n.watchList.forEach(function(i){i(o,a,r)})}}),D(this,"timeoutId",null),D(this,"warningUnhooked",function(){}),D(this,"updateStore",function(r){n.store=r}),D(this,"getFieldEntities",function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return r?n.fieldEntities.filter(function(o){return o.getNamePath().length}):n.fieldEntities}),D(this,"getFieldsMap",function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,o=new Ti;return n.getFieldEntities(r).forEach(function(a){var i=a.getNamePath();o.set(i,a)}),o}),D(this,"getFieldEntitiesForNamePathList",function(r){if(!r)return n.getFieldEntities(!0);var o=n.getFieldsMap(!0);return r.map(function(a){var i=bn(a);return o.get(i)||{INVALIDATE_NAME_PATH:bn(a)}})}),D(this,"getFieldsValue",function(r,o){n.warningUnhooked();var a,i,l;if(r===!0||Array.isArray(r)?(a=r,i=o):r&&We(r)==="object"&&(l=r.strict,i=r.filter),a===!0&&!i)return n.store;var c=n.getFieldEntitiesForNamePathList(Array.isArray(a)?a:null),u=[];return c.forEach(function(d){var f,m,v="INVALIDATE_NAME_PATH"in d?d.INVALIDATE_NAME_PATH:d.getNamePath();if(l){var p,b;if((p=(b=d).isList)!==null&&p!==void 0&&p.call(b))return}else if(!a&&(f=(m=d).isListField)!==null&&f!==void 0&&f.call(m))return;if(!i)u.push(v);else{var h="getMeta"in d?d.getMeta():null;i(h)&&u.push(v)}}),OS(n.store,u.map(bn))}),D(this,"getFieldValue",function(r){n.warningUnhooked();var o=bn(r);return _r(n.store,o)}),D(this,"getFieldsError",function(r){n.warningUnhooked();var o=n.getFieldEntitiesForNamePathList(r);return o.map(function(a,i){return a&&!("INVALIDATE_NAME_PATH"in a)?{name:a.getNamePath(),errors:a.getErrors(),warnings:a.getWarnings()}:{name:bn(r[i]),errors:[],warnings:[]}})}),D(this,"getFieldError",function(r){n.warningUnhooked();var o=bn(r),a=n.getFieldsError([o])[0];return a.errors}),D(this,"getFieldWarning",function(r){n.warningUnhooked();var o=bn(r),a=n.getFieldsError([o])[0];return a.warnings}),D(this,"isFieldsTouched",function(){n.warningUnhooked();for(var r=arguments.length,o=new Array(r),a=0;a0&&arguments[0]!==void 0?arguments[0]:{},o=new Ti,a=n.getFieldEntities(!0);a.forEach(function(c){var u=c.props.initialValue,d=c.getNamePath();if(u!==void 0){var f=o.get(d)||new Set;f.add({entity:c,value:u}),o.set(d,f)}});var i=function(u){u.forEach(function(d){var f=d.props.initialValue;if(f!==void 0){var m=d.getNamePath(),v=n.getInitialValue(m);if(v!==void 0)rn(!1,"Form already set 'initialValues' with path '".concat(m.join("."),"'. Field can not overwrite it."));else{var p=o.get(m);if(p&&p.size>1)rn(!1,"Multiple Field with path '".concat(m.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(p){var b=n.getFieldValue(m),h=d.isListField();!h&&(!r.skipExist||b===void 0)&&n.updateStore(co(n.store,m,he(p)[0].value))}}}})},l;r.entities?l=r.entities:r.namePathList?(l=[],r.namePathList.forEach(function(c){var u=o.get(c);if(u){var d;(d=l).push.apply(d,he(he(u).map(function(f){return f.entity})))}})):l=a,i(l)}),D(this,"resetFields",function(r){n.warningUnhooked();var o=n.store;if(!r){n.updateStore(Qi(n.initialValues)),n.resetWithFieldInitialValue(),n.notifyObservers(o,null,{type:"reset"}),n.notifyWatch();return}var a=r.map(bn);a.forEach(function(i){var l=n.getInitialValue(i);n.updateStore(co(n.store,i,l))}),n.resetWithFieldInitialValue({namePathList:a}),n.notifyObservers(o,a,{type:"reset"}),n.notifyWatch(a)}),D(this,"setFields",function(r){n.warningUnhooked();var o=n.store,a=[];r.forEach(function(i){var l=i.name,c=ut(i,b6),u=bn(l);a.push(u),"value"in c&&n.updateStore(co(n.store,u,c.value)),n.notifyObservers(o,[u],{type:"setField",data:i})}),n.notifyWatch(a)}),D(this,"getFields",function(){var r=n.getFieldEntities(!0),o=r.map(function(a){var i=a.getNamePath(),l=a.getMeta(),c=k(k({},l),{},{name:i,value:n.getFieldValue(i)});return Object.defineProperty(c,"originRCField",{value:!0}),c});return o}),D(this,"initEntityValue",function(r){var o=r.props.initialValue;if(o!==void 0){var a=r.getNamePath(),i=_r(n.store,a);i===void 0&&n.updateStore(co(n.store,a,o))}}),D(this,"isMergedPreserve",function(r){var o=r!==void 0?r:n.preserve;return o??!0}),D(this,"registerField",function(r){n.fieldEntities.push(r);var o=r.getNamePath();if(n.notifyWatch([o]),r.props.initialValue!==void 0){var a=n.store;n.resetWithFieldInitialValue({entities:[r],skipExist:!0}),n.notifyObservers(a,[r.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(i,l){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(n.fieldEntities=n.fieldEntities.filter(function(f){return f!==r}),!n.isMergedPreserve(l)&&(!i||c.length>1)){var u=i?void 0:n.getInitialValue(o);if(o.length&&n.getFieldValue(o)!==u&&n.fieldEntities.every(function(f){return!vO(f.getNamePath(),o)})){var d=n.store;n.updateStore(co(d,o,u,!0)),n.notifyObservers(d,[o],{type:"remove"}),n.triggerDependenciesUpdate(d,o)}}n.notifyWatch([o])}}),D(this,"dispatch",function(r){switch(r.type){case"updateValue":{var o=r.namePath,a=r.value;n.updateValue(o,a);break}case"validateField":{var i=r.namePath,l=r.triggerName;n.validateFields([i],{triggerName:l});break}}}),D(this,"notifyObservers",function(r,o,a){if(n.subscribable){var i=k(k({},a),{},{store:n.getFieldsValue(!0)});n.getFieldEntities().forEach(function(l){var c=l.onStoreChange;c(r,o,i)})}else n.forceRootUpdate()}),D(this,"triggerDependenciesUpdate",function(r,o){var a=n.getDependencyChildrenFields(o);return a.length&&n.validateFields(a),n.notifyObservers(r,a,{type:"dependenciesUpdate",relatedFields:[o].concat(he(a))}),a}),D(this,"updateValue",function(r,o){var a=bn(r),i=n.store;n.updateStore(co(n.store,a,o)),n.notifyObservers(i,[a],{type:"valueUpdate",source:"internal"}),n.notifyWatch([a]);var l=n.triggerDependenciesUpdate(i,a),c=n.callbacks.onValuesChange;if(c){var u=OS(n.store,[a]);c(u,n.getFieldsValue())}n.triggerOnFieldsChange([a].concat(he(l)))}),D(this,"setFieldsValue",function(r){n.warningUnhooked();var o=n.store;if(r){var a=Qi(n.store,r);n.updateStore(a)}n.notifyObservers(o,null,{type:"valueUpdate",source:"external"}),n.notifyWatch()}),D(this,"setFieldValue",function(r,o){n.setFields([{name:r,value:o,errors:[],warnings:[]}])}),D(this,"getDependencyChildrenFields",function(r){var o=new Set,a=[],i=new Ti;n.getFieldEntities().forEach(function(c){var u=c.props.dependencies;(u||[]).forEach(function(d){var f=bn(d);i.update(f,function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Set;return m.add(c),m})})});var l=function c(u){var d=i.get(u)||new Set;d.forEach(function(f){if(!o.has(f)){o.add(f);var m=f.getNamePath();f.isFieldDirty()&&m.length&&(a.push(m),c(m))}})};return l(r),a}),D(this,"triggerOnFieldsChange",function(r,o){var a=n.callbacks.onFieldsChange;if(a){var i=n.getFields();if(o){var l=new Ti;o.forEach(function(u){var d=u.name,f=u.errors;l.set(d,f)}),i.forEach(function(u){u.errors=l.get(u.name)||u.errors})}var c=i.filter(function(u){var d=u.name;return sl(r,d)});c.length&&a(c,i)}}),D(this,"validateFields",function(r,o){n.warningUnhooked();var a,i;Array.isArray(r)||typeof r=="string"||typeof o=="string"?(a=r,i=o):i=r;var l=!!a,c=l?a.map(bn):[],u=[],d=String(Date.now()),f=new Set,m=i||{},v=m.recursive,p=m.dirty;n.getFieldEntities(!0).forEach(function(y){if(l||c.push(y.getNamePath()),!(!y.props.rules||!y.props.rules.length)&&!(p&&!y.isFieldDirty())){var C=y.getNamePath();if(f.add(C.join(d)),!l||sl(c,C,v)){var x=y.validateRules(k({validateMessages:k(k({},mO),n.validateMessages)},i));u.push(x.then(function(){return{name:C,errors:[],warnings:[]}}).catch(function(S){var w,E=[],O=[];return(w=S.forEach)===null||w===void 0||w.call(S,function($){var R=$.rule.warningOnly,I=$.errors;R?O.push.apply(O,he(I)):E.push.apply(E,he(I))}),E.length?Promise.reject({name:C,errors:E,warnings:O}):{name:C,errors:E,warnings:O}}))}}});var b=y6(u);n.lastValidatePromise=b,b.catch(function(y){return y}).then(function(y){var C=y.map(function(x){var S=x.name;return S});n.notifyObservers(n.store,C,{type:"validateFinish"}),n.triggerOnFieldsChange(C,y)});var h=b.then(function(){return n.lastValidatePromise===b?Promise.resolve(n.getFieldsValue(c)):Promise.reject([])}).catch(function(y){var C=y.filter(function(x){return x&&x.errors.length});return Promise.reject({values:n.getFieldsValue(c),errorFields:C,outOfDate:n.lastValidatePromise!==b})});h.catch(function(y){return y});var g=c.filter(function(y){return f.has(y.join(d))});return n.triggerOnFieldsChange(g),h}),D(this,"submit",function(){n.warningUnhooked(),n.validateFields().then(function(r){var o=n.callbacks.onFinish;if(o)try{o(r)}catch(a){console.error(a)}}).catch(function(r){var o=n.callbacks.onFinishFailed;o&&o(r)})}),this.forceRootUpdate=t});function hO(e){var t=s.useRef(),n=s.useState({}),r=ee(n,2),o=r[1];if(!t.current)if(e)t.current=e;else{var a=function(){o({})},i=new C6(a);t.current=i.getForm()}return[t.current]}var Kg=s.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),S6=function(t){var n=t.validateMessages,r=t.onFormChange,o=t.onFormFinish,a=t.children,i=s.useContext(Kg),l=s.useRef({});return s.createElement(Kg.Provider,{value:k(k({},i),{},{validateMessages:k(k({},i.validateMessages),n),triggerFormChange:function(u,d){r&&r(u,{changedFields:d,forms:l.current}),i.triggerFormChange(u,d)},triggerFormFinish:function(u,d){o&&o(u,{values:d,forms:l.current}),i.triggerFormFinish(u,d)},registerForm:function(u,d){u&&(l.current=k(k({},l.current),{},D({},u,d))),i.registerForm(u,d)},unregisterForm:function(u){var d=k({},l.current);delete d[u],l.current=d,i.unregisterForm(u)}})},a)},x6=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed","clearOnDestroy"],w6=function(t,n){var r=t.name,o=t.initialValues,a=t.fields,i=t.form,l=t.preserve,c=t.children,u=t.component,d=u===void 0?"form":u,f=t.validateMessages,m=t.validateTrigger,v=m===void 0?"onChange":m,p=t.onValuesChange,b=t.onFieldsChange,h=t.onFinish,g=t.onFinishFailed,y=t.clearOnDestroy,C=ut(t,x6),x=s.useRef(null),S=s.useContext(Kg),w=hO(i),E=ee(w,1),O=E[0],$=O.getInternalHooks(ei),R=$.useSubscribe,I=$.setInitialValues,N=$.setCallbacks,T=$.setValidateMessages,P=$.setPreserve,M=$.destroyForm;s.useImperativeHandle(n,function(){return k(k({},O),{},{nativeElement:x.current})}),s.useEffect(function(){return S.registerForm(r,O),function(){S.unregisterForm(r)}},[S,O,r]),T(k(k({},S.validateMessages),f)),N({onValuesChange:p,onFieldsChange:function(V){if(S.triggerFormChange(r,V),b){for(var K=arguments.length,Y=new Array(K>1?K-1:0),re=1;re{const r=s.useContext(So),o=s.useMemo(()=>{const a=Object.assign({},r);return n&&delete a.isFormItemInput,t&&(delete a.status,delete a.hasFeedback,delete a.feedbackIcon),a},[t,n,r]);return s.createElement(So.Provider,{value:o},e)},R6=s.createContext(void 0),dc=e=>{const{space:t,form:n,children:r}=e;if(r==null)return null;let o=r;return n&&(o=B.createElement(O6,{override:!0,status:!0},o)),t&&(o=B.createElement(Yj,null,o)),o};function Fd(...e){const t={};return e.forEach(n=>{n&&Object.keys(n).forEach(r=>{n[r]!==void 0&&(t[r]=n[r])})}),t}function Hd(e){if(e)return{closable:e.closable,closeIcon:e.closeIcon}}function IS(e){const{closable:t,closeIcon:n}=e||{};return B.useMemo(()=>{if(!t&&(t===!1||n===!1||n===null))return!1;if(t===void 0&&n===void 0)return null;let r={closeIcon:typeof n!="boolean"&&n!==null?n:void 0};return t&&typeof t=="object"&&(r=Object.assign(Object.assign({},r),t)),r},[t,n])}const P6={};function yO(e,t,n=P6){const r=IS(e),o=IS(t),[a]=$o("global",yo.global),i=typeof r!="boolean"?!!(r!=null&&r.disabled):!1,l=B.useMemo(()=>Object.assign({closeIcon:B.createElement(xi,null)},n),[n]),c=B.useMemo(()=>r===!1?!1:r?Fd(l,o,r):o===!1?!1:o?Fd(l,o):l.closable?l:!1,[r,o,l]);return B.useMemo(()=>{if(c===!1)return[!1,null,i,{}];const{closeIconRender:u}=l,{closeIcon:d}=c;let f=d;const m=tr(c,!0);return f!=null&&(u&&(f=u(d)),f=B.isValidElement(f)?B.cloneElement(f,Object.assign({"aria-label":a.close},m)):B.createElement("span",Object.assign({"aria-label":a.close},m),f)),[!0,f,i,m]},[c,l])}var bO=function(t){if(Bn()&&window.document.documentElement){var n=Array.isArray(t)?t:[t],r=window.document.documentElement;return n.some(function(o){return o in r.style})}return!1},I6=function(t,n){if(!bO(t))return!1;var r=document.createElement("div"),o=r.style[t];return r.style[t]=n,r.style[t]!==o};function Ug(e,t){return!Array.isArray(e)&&t!==void 0?I6(e,t):bO(e)}const N6=()=>Bn()&&window.document.documentElement,Jf=e=>{const{prefixCls:t,className:n,style:r,size:o,shape:a}=e,i=G({[`${t}-lg`]:o==="large",[`${t}-sm`]:o==="small"}),l=G({[`${t}-circle`]:a==="circle",[`${t}-square`]:a==="square",[`${t}-round`]:a==="round"}),c=s.useMemo(()=>typeof o=="number"?{width:o,height:o,lineHeight:`${o}px`}:{},[o]);return s.createElement("span",{className:G(t,i,l,n),style:Object.assign(Object.assign({},c),r)})},T6=new Nt("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),Zf=e=>({height:e,lineHeight:U(e)}),cl=e=>Object.assign({width:e},Zf(e)),M6=e=>({background:e.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:T6,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"}),Ev=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},Zf(e)),_6=e=>{const{skeletonAvatarCls:t,gradientFromColor:n,controlHeight:r,controlHeightLG:o,controlHeightSM:a}=e;return{[t]:Object.assign({display:"inline-block",verticalAlign:"top",background:n},cl(r)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:Object.assign({},cl(o)),[`${t}${t}-sm`]:Object.assign({},cl(a))}},z6=e=>{const{controlHeight:t,borderRadiusSM:n,skeletonInputCls:r,controlHeightLG:o,controlHeightSM:a,gradientFromColor:i,calc:l}=e;return{[r]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:n},Ev(t,l)),[`${r}-lg`]:Object.assign({},Ev(o,l)),[`${r}-sm`]:Object.assign({},Ev(a,l))}},NS=e=>Object.assign({width:e},Zf(e)),j6=e=>{const{skeletonImageCls:t,imageSizeBase:n,gradientFromColor:r,borderRadiusSM:o,calc:a}=e;return{[t]:Object.assign(Object.assign({display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:r,borderRadius:o},NS(a(n).mul(2).equal())),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:Object.assign(Object.assign({},NS(n)),{maxWidth:a(n).mul(4).equal(),maxHeight:a(n).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}},Ov=(e,t,n)=>{const{skeletonButtonCls:r}=e;return{[`${n}${r}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${n}${r}-round`]:{borderRadius:t}}},Rv=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},Zf(e)),L6=e=>{const{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:r,controlHeightLG:o,controlHeightSM:a,gradientFromColor:i,calc:l}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[n]:Object.assign({display:"inline-block",verticalAlign:"top",background:i,borderRadius:t,width:l(r).mul(2).equal(),minWidth:l(r).mul(2).equal()},Rv(r,l))},Ov(e,r,n)),{[`${n}-lg`]:Object.assign({},Rv(o,l))}),Ov(e,o,`${n}-lg`)),{[`${n}-sm`]:Object.assign({},Rv(a,l))}),Ov(e,a,`${n}-sm`))},D6=e=>{const{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:r,skeletonParagraphCls:o,skeletonButtonCls:a,skeletonInputCls:i,skeletonImageCls:l,controlHeight:c,controlHeightLG:u,controlHeightSM:d,gradientFromColor:f,padding:m,marginSM:v,borderRadius:p,titleHeight:b,blockRadius:h,paragraphLiHeight:g,controlHeightXS:y,paragraphMarginTop:C}=e;return{[t]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:m,verticalAlign:"top",[n]:Object.assign({display:"inline-block",verticalAlign:"top",background:f},cl(c)),[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:Object.assign({},cl(u)),[`${n}-sm`]:Object.assign({},cl(d))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[r]:{width:"100%",height:b,background:f,borderRadius:h,[`+ ${o}`]:{marginBlockStart:d}},[o]:{padding:0,"> li":{width:"100%",height:g,listStyle:"none",background:f,borderRadius:h,"+ li":{marginBlockStart:y}}},[`${o}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${r}, ${o} > li`]:{borderRadius:p}}},[`${t}-with-avatar ${t}-content`]:{[r]:{marginBlockStart:v,[`+ ${o}`]:{marginBlockStart:C}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:"inline-block",width:"auto"},L6(e)),_6(e)),z6(e)),j6(e)),[`${t}${t}-block`]:{width:"100%",[a]:{width:"100%"},[i]:{width:"100%"}},[`${t}${t}-active`]:{[` + ${r}, + ${o} > li, + ${n}, + ${a}, + ${i}, + ${l} + `]:Object.assign({},M6(e))}}},B6=e=>{const{colorFillContent:t,colorFill:n}=e,r=t,o=n;return{color:r,colorGradientEnd:o,gradientFromColor:r,gradientToColor:o,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},Ll=Wt("Skeleton",e=>{const{componentCls:t,calc:n}=e,r=Rt(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:n(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"});return[D6(r)]},B6,{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),k6=e=>{const{prefixCls:t,className:n,rootClassName:r,active:o,shape:a="circle",size:i="default"}=e,{getPrefixCls:l}=s.useContext(lt),c=l("skeleton",t),[u,d,f]=Ll(c),m=Zt(e,["prefixCls","className"]),v=G(c,`${c}-element`,{[`${c}-active`]:o},n,r,d,f);return u(s.createElement("div",{className:v},s.createElement(Jf,Object.assign({prefixCls:`${c}-avatar`,shape:a,size:i},m))))},A6=e=>{const{prefixCls:t,className:n,rootClassName:r,active:o,block:a=!1,size:i="default"}=e,{getPrefixCls:l}=s.useContext(lt),c=l("skeleton",t),[u,d,f]=Ll(c),m=Zt(e,["prefixCls"]),v=G(c,`${c}-element`,{[`${c}-active`]:o,[`${c}-block`]:a},n,r,d,f);return u(s.createElement("div",{className:v},s.createElement(Jf,Object.assign({prefixCls:`${c}-button`,size:i},m))))},F6="M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",H6=e=>{const{prefixCls:t,className:n,rootClassName:r,style:o,active:a}=e,{getPrefixCls:i}=s.useContext(lt),l=i("skeleton",t),[c,u,d]=Ll(l),f=G(l,`${l}-element`,{[`${l}-active`]:a},n,r,u,d);return c(s.createElement("div",{className:f},s.createElement("div",{className:G(`${l}-image`,n),style:o},s.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${l}-image-svg`},s.createElement("title",null,"Image placeholder"),s.createElement("path",{d:F6,className:`${l}-image-path`})))))},V6=e=>{const{prefixCls:t,className:n,rootClassName:r,active:o,block:a,size:i="default"}=e,{getPrefixCls:l}=s.useContext(lt),c=l("skeleton",t),[u,d,f]=Ll(c),m=Zt(e,["prefixCls"]),v=G(c,`${c}-element`,{[`${c}-active`]:o,[`${c}-block`]:a},n,r,d,f);return u(s.createElement("div",{className:v},s.createElement(Jf,Object.assign({prefixCls:`${c}-input`,size:i},m))))},W6=e=>{const{prefixCls:t,className:n,rootClassName:r,style:o,active:a,children:i}=e,{getPrefixCls:l}=s.useContext(lt),c=l("skeleton",t),[u,d,f]=Ll(c),m=G(c,`${c}-element`,{[`${c}-active`]:a},d,n,r,f);return u(s.createElement("div",{className:m},s.createElement("div",{className:G(`${c}-image`,n),style:o},i)))},K6=(e,t)=>{const{width:n,rows:r=2}=t;if(Array.isArray(n))return n[e];if(r-1===e)return n},U6=e=>{const{prefixCls:t,className:n,style:r,rows:o=0}=e,a=Array.from({length:o}).map((i,l)=>s.createElement("li",{key:l,style:{width:K6(l,e)}}));return s.createElement("ul",{className:G(t,n),style:r},a)},G6=({prefixCls:e,className:t,width:n,style:r})=>s.createElement("h3",{className:G(e,t),style:Object.assign({width:n},r)});function Pv(e){return e&&typeof e=="object"?e:{}}function q6(e,t){return e&&!t?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}function X6(e,t){return!e&&t?{width:"38%"}:e&&t?{width:"50%"}:{}}function Y6(e,t){const n={};return(!e||!t)&&(n.width="61%"),!e&&t?n.rows=3:n.rows=2,n}const wi=e=>{const{prefixCls:t,loading:n,className:r,rootClassName:o,style:a,children:i,avatar:l=!1,title:c=!0,paragraph:u=!0,active:d,round:f}=e,{getPrefixCls:m,direction:v,className:p,style:b}=Rr("skeleton"),h=m("skeleton",t),[g,y,C]=Ll(h);if(n||!("loading"in e)){const x=!!l,S=!!c,w=!!u;let E;if(x){const R=Object.assign(Object.assign({prefixCls:`${h}-avatar`},q6(S,w)),Pv(l));E=s.createElement("div",{className:`${h}-header`},s.createElement(Jf,Object.assign({},R)))}let O;if(S||w){let R;if(S){const N=Object.assign(Object.assign({prefixCls:`${h}-title`},X6(x,w)),Pv(c));R=s.createElement(G6,Object.assign({},N))}let I;if(w){const N=Object.assign(Object.assign({prefixCls:`${h}-paragraph`},Y6(x,S)),Pv(u));I=s.createElement(U6,Object.assign({},N))}O=s.createElement("div",{className:`${h}-content`},R,I)}const $=G(h,{[`${h}-with-avatar`]:x,[`${h}-active`]:d,[`${h}-rtl`]:v==="rtl",[`${h}-round`]:f},p,r,o,y,C);return g(s.createElement("div",{className:$,style:Object.assign(Object.assign({},b),a)},E,O))}return i??null};wi.Button=A6;wi.Avatar=k6;wi.Input=V6;wi.Image=H6;wi.Node=W6;function TS(){}const Q6=s.createContext({add:TS,remove:TS});function J6(e){const t=s.useContext(Q6),n=s.useRef(null);return Vt(o=>{if(o){const a=e?o.querySelector(e):o;t.add(a),n.current=a}else t.remove(n.current)})}const MS=()=>{const{cancelButtonProps:e,cancelTextLocale:t,onCancel:n}=s.useContext(Lc);return B.createElement(rr,Object.assign({onClick:n},e),t)},_S=()=>{const{confirmLoading:e,okButtonProps:t,okType:n,okTextLocale:r,onOk:o}=s.useContext(Lc);return B.createElement(rr,Object.assign({},H0(n),{loading:e,onClick:o},t),r)};function CO(e,t){return B.createElement("span",{className:`${e}-close-x`},t||B.createElement(xi,{className:`${e}-close-icon`}))}const SO=e=>{const{okText:t,okType:n="primary",cancelText:r,confirmLoading:o,onOk:a,onCancel:i,okButtonProps:l,cancelButtonProps:c,footer:u}=e,[d]=$o("Modal",i2()),f=t||(d==null?void 0:d.okText),m=r||(d==null?void 0:d.cancelText),v={confirmLoading:o,okButtonProps:l,cancelButtonProps:c,okTextLocale:f,cancelTextLocale:m,okType:n,onOk:a,onCancel:i},p=B.useMemo(()=>v,he(Object.values(v)));let b;return typeof u=="function"||typeof u>"u"?(b=B.createElement(B.Fragment,null,B.createElement(MS,null),B.createElement(_S,null)),typeof u=="function"&&(b=u(b,{OkBtn:_S,CancelBtn:MS})),b=B.createElement(aO,{value:p},b)):b=u,B.createElement(f2,{disabled:!1},b)},Z6=e=>{const{componentCls:t}=e;return{[t]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around":{justifyContent:"space-around"},"&-space-evenly":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},eB=e=>{const{componentCls:t}=e;return{[t]:{position:"relative",maxWidth:"100%",minHeight:1}}},tB=(e,t)=>{const{prefixCls:n,componentCls:r,gridColumns:o}=e,a={};for(let i=o;i>=0;i--)i===0?(a[`${r}${t}-${i}`]={display:"none"},a[`${r}-push-${i}`]={insetInlineStart:"auto"},a[`${r}-pull-${i}`]={insetInlineEnd:"auto"},a[`${r}${t}-push-${i}`]={insetInlineStart:"auto"},a[`${r}${t}-pull-${i}`]={insetInlineEnd:"auto"},a[`${r}${t}-offset-${i}`]={marginInlineStart:0},a[`${r}${t}-order-${i}`]={order:0}):(a[`${r}${t}-${i}`]=[{"--ant-display":"block",display:"block"},{display:"var(--ant-display)",flex:`0 0 ${i/o*100}%`,maxWidth:`${i/o*100}%`}],a[`${r}${t}-push-${i}`]={insetInlineStart:`${i/o*100}%`},a[`${r}${t}-pull-${i}`]={insetInlineEnd:`${i/o*100}%`},a[`${r}${t}-offset-${i}`]={marginInlineStart:`${i/o*100}%`},a[`${r}${t}-order-${i}`]={order:i});return a[`${r}${t}-flex`]={flex:`var(--${n}${t}-flex)`},a},Gg=(e,t)=>tB(e,t),nB=(e,t,n)=>({[`@media (min-width: ${U(t)})`]:Object.assign({},Gg(e,n))}),rB=()=>({}),oB=()=>({}),aB=Wt("Grid",Z6,rB),xO=e=>({xs:e.screenXSMin,sm:e.screenSMMin,md:e.screenMDMin,lg:e.screenLGMin,xl:e.screenXLMin,xxl:e.screenXXLMin}),iB=Wt("Grid",e=>{const t=Rt(e,{gridColumns:24}),n=xO(t);return delete n.xs,[eB(t),Gg(t,""),Gg(t,"-xs"),Object.keys(n).map(r=>nB(t,n[r],`-${r}`)).reduce((r,o)=>Object.assign(Object.assign({},r),o),{})]},oB);function zS(e){return{position:e,inset:0}}const lB=e=>{const{componentCls:t,antCls:n}=e;return[{[`${t}-root`]:{[`${t}${n}-zoom-enter, ${t}${n}-zoom-appear`]:{transform:"none",opacity:0,animationDuration:e.motionDurationSlow,userSelect:"none"},[`${t}${n}-zoom-leave ${t}-content`]:{pointerEvents:"none"},[`${t}-mask`]:Object.assign(Object.assign({},zS("fixed")),{zIndex:e.zIndexPopupBase,height:"100%",backgroundColor:e.colorBgMask,pointerEvents:"none",[`${t}-hidden`]:{display:"none"}}),[`${t}-wrap`]:Object.assign(Object.assign({},zS("fixed")),{zIndex:e.zIndexPopupBase,overflow:"auto",outline:0,WebkitOverflowScrolling:"touch"})}},{[`${t}-root`]:tO(e)}]},sB=e=>{const{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl"},[`${t}-centered`]:{textAlign:"center","&::before":{display:"inline-block",width:0,height:"100%",verticalAlign:"middle",content:'""'},[t]:{top:0,display:"inline-block",paddingBottom:0,textAlign:"start",verticalAlign:"middle"}},[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{maxWidth:"calc(100vw - 16px)",margin:`${U(e.marginXS)} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:Object.assign(Object.assign({},Jt(e)),{pointerEvents:"none",position:"relative",top:100,width:"auto",maxWidth:`calc(100vw - ${U(e.calc(e.margin).mul(2).equal())})`,margin:"0 auto",paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.titleColor,fontWeight:e.fontWeightStrong,fontSize:e.titleFontSize,lineHeight:e.titleLineHeight,wordWrap:"break-word"},[`${t}-content`]:{position:"relative",backgroundColor:e.contentBg,backgroundClip:"padding-box",border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadow,pointerEvents:"auto",padding:e.contentPadding},[`${t}-close`]:Object.assign({position:"absolute",top:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),insetInlineEnd:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),zIndex:e.calc(e.zIndexPopupBase).add(10).equal(),padding:0,color:e.modalCloseIconColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:"none",background:"transparent",borderRadius:e.borderRadiusSM,width:e.modalCloseBtnSize,height:e.modalCloseBtnSize,border:0,outline:0,cursor:"pointer",transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&-x":{display:"flex",fontSize:e.fontSizeLG,fontStyle:"normal",lineHeight:U(e.modalCloseBtnSize),justifyContent:"center",textTransform:"none",textRendering:"auto"},"&:disabled":{pointerEvents:"none"},"&:hover":{color:e.modalCloseIconHoverColor,backgroundColor:e.colorBgTextHover,textDecoration:"none"},"&:active":{backgroundColor:e.colorBgTextActive}},ea(e)),[`${t}-header`]:{color:e.colorText,background:e.headerBg,borderRadius:`${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)} 0 0`,marginBottom:e.headerMarginBottom,padding:e.headerPadding,borderBottom:e.headerBorderBottom},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:"break-word",padding:e.bodyPadding,[`${t}-body-skeleton`]:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",margin:`${U(e.margin)} auto`}},[`${t}-footer`]:{textAlign:"end",background:e.footerBg,marginTop:e.footerMarginTop,padding:e.footerPadding,borderTop:e.footerBorderTop,borderRadius:e.footerBorderRadius,[`> ${e.antCls}-btn + ${e.antCls}-btn`]:{marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:"hidden"}})},{[`${t}-pure-panel`]:{top:"auto",padding:0,display:"flex",flexDirection:"column",[`${t}-content, + ${t}-body, + ${t}-confirm-body-wrapper`]:{display:"flex",flexDirection:"column",flex:"auto"},[`${t}-confirm-body`]:{marginBottom:"auto"}}}]},cB=e=>{const{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:"rtl",[`${t}-confirm-body`]:{direction:"rtl"}}}}},uB=e=>{const{componentCls:t}=e,n=xO(e);delete n.xs;const r=Object.keys(n).map(o=>({[`@media (min-width: ${U(n[o])})`]:{width:`var(--${t.replace(".","")}-${o}-width)`}}));return{[`${t}-root`]:{[t]:[{width:`var(--${t.replace(".","")}-xs-width)`}].concat(he(r))}}},wO=e=>{const t=e.padding,n=e.fontSizeHeading5,r=e.lineHeightHeading5;return Rt(e,{modalHeaderHeight:e.calc(e.calc(r).mul(n).equal()).add(e.calc(t).mul(2).equal()).equal(),modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterBorderWidth:e.lineWidth,modalCloseIconColor:e.colorIcon,modalCloseIconHoverColor:e.colorIconHover,modalCloseBtnSize:e.controlHeight,modalConfirmIconSize:e.fontHeight,modalTitleHeight:e.calc(e.titleFontSize).mul(e.titleLineHeight).equal()})},$O=e=>({footerBg:"transparent",headerBg:e.colorBgElevated,titleLineHeight:e.lineHeightHeading5,titleFontSize:e.fontSizeHeading5,contentBg:e.colorBgElevated,titleColor:e.colorTextHeading,contentPadding:e.wireframe?0:`${U(e.paddingMD)} ${U(e.paddingContentHorizontalLG)}`,headerPadding:e.wireframe?`${U(e.padding)} ${U(e.paddingLG)}`:0,headerBorderBottom:e.wireframe?`${U(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",headerMarginBottom:e.wireframe?0:e.marginXS,bodyPadding:e.wireframe?e.paddingLG:0,footerPadding:e.wireframe?`${U(e.paddingXS)} ${U(e.padding)}`:0,footerBorderTop:e.wireframe?`${U(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:"none",footerBorderRadius:e.wireframe?`0 0 ${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)}`:0,footerMarginTop:e.wireframe?0:e.marginSM,confirmBodyPadding:e.wireframe?`${U(e.padding*2)} ${U(e.padding*2)} ${U(e.paddingLG)}`:0,confirmIconMarginInlineEnd:e.wireframe?e.margin:e.marginSM,confirmBtnsMarginTop:e.wireframe?e.marginLG:e.marginSM}),EO=Wt("Modal",e=>{const t=wO(e);return[sB(t),cB(t),lB(t),jc(t,"zoom"),uB(t)]},$O,{unitless:{titleLineHeight:!0}});var dB=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{qg={x:e.pageX,y:e.pageY},setTimeout(()=>{qg=null},100)};N6()&&document.documentElement.addEventListener("click",fB,!0);const OO=e=>{const{prefixCls:t,className:n,rootClassName:r,open:o,wrapClassName:a,centered:i,getContainer:l,focusTriggerAfterClose:c=!0,style:u,visible:d,width:f=520,footer:m,classNames:v,styles:p,children:b,loading:h,confirmLoading:g,zIndex:y,mousePosition:C,onOk:x,onCancel:S,destroyOnHidden:w,destroyOnClose:E}=e,O=dB(e,["prefixCls","className","rootClassName","open","wrapClassName","centered","getContainer","focusTriggerAfterClose","style","visible","width","footer","classNames","styles","children","loading","confirmLoading","zIndex","mousePosition","onOk","onCancel","destroyOnHidden","destroyOnClose"]),{getPopupContainer:$,getPrefixCls:R,direction:I,modal:N}=s.useContext(lt),T=X=>{g||S==null||S(X)},P=X=>{x==null||x(X)},M=R("modal",t),_=R(),z=mr(M),[j,L,F]=EO(M,z),W=G(a,{[`${M}-centered`]:i??(N==null?void 0:N.centered),[`${M}-wrap-rtl`]:I==="rtl"}),H=m!==null&&!h?s.createElement(SO,Object.assign({},e,{onOk:P,onCancel:T})):null,[A,V,K,Y]=yO(Hd(e),Hd(N),{closable:!0,closeIcon:s.createElement(xi,{className:`${M}-close-icon`}),closeIconRender:X=>CO(M,X)}),re=J6(`.${M}-content`),[J,ae]=_c("Modal",y),[le,te]=s.useMemo(()=>f&&typeof f=="object"?[void 0,f]:[f,void 0],[f]),q=s.useMemo(()=>{const X={};return te&&Object.keys(te).forEach(Q=>{const Z=te[Q];Z!==void 0&&(X[`--${M}-${Q}-width`]=typeof Z=="number"?`${Z}px`:Z)}),X},[te]);return j(s.createElement(dc,{form:!0,space:!0},s.createElement(Bf.Provider,{value:ae},s.createElement(dO,Object.assign({width:le},O,{zIndex:J,getContainer:l===void 0?$:l,prefixCls:M,rootClassName:G(L,r,F,z),footer:H,visible:o??d,mousePosition:C??qg,onClose:T,closable:A&&Object.assign({disabled:K,closeIcon:V},Y),closeIcon:V,focusTriggerAfterClose:c,transitionName:za(_,"zoom",e.transitionName),maskTransitionName:za(_,"fade",e.maskTransitionName),className:G(L,n,N==null?void 0:N.className),style:Object.assign(Object.assign(Object.assign({},N==null?void 0:N.style),u),q),classNames:Object.assign(Object.assign(Object.assign({},N==null?void 0:N.classNames),v),{wrapper:G(W,v==null?void 0:v.wrapper)}),styles:Object.assign(Object.assign({},N==null?void 0:N.styles),p),panelRef:re,destroyOnClose:w??E}),h?s.createElement(wi,{active:!0,title:!1,paragraph:{rows:4},className:`${M}-body-skeleton`}):b))))},mB=e=>{const{componentCls:t,titleFontSize:n,titleLineHeight:r,modalConfirmIconSize:o,fontSize:a,lineHeight:i,modalTitleHeight:l,fontHeight:c,confirmBodyPadding:u}=e,d=`${t}-confirm`;return{[d]:{"&-rtl":{direction:"rtl"},[`${e.antCls}-modal-header`]:{display:"none"},[`${d}-body-wrapper`]:Object.assign({},Co()),[`&${t} ${t}-body`]:{padding:u},[`${d}-body`]:{display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${e.iconCls}`]:{flex:"none",fontSize:o,marginInlineEnd:e.confirmIconMarginInlineEnd,marginTop:e.calc(e.calc(c).sub(o).equal()).div(2).equal()},[`&-has-title > ${e.iconCls}`]:{marginTop:e.calc(e.calc(l).sub(o).equal()).div(2).equal()}},[`${d}-paragraph`]:{display:"flex",flexDirection:"column",flex:"auto",rowGap:e.marginXS,maxWidth:`calc(100% - ${U(e.marginSM)})`},[`${e.iconCls} + ${d}-paragraph`]:{maxWidth:`calc(100% - ${U(e.calc(e.modalConfirmIconSize).add(e.marginSM).equal())})`},[`${d}-title`]:{color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:n,lineHeight:r},[`${d}-content`]:{color:e.colorText,fontSize:a,lineHeight:i},[`${d}-btns`]:{textAlign:"end",marginTop:e.confirmBtnsMarginTop,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${d}-error ${d}-body > ${e.iconCls}`]:{color:e.colorError},[`${d}-warning ${d}-body > ${e.iconCls}, + ${d}-confirm ${d}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${d}-info ${d}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${d}-success ${d}-body > ${e.iconCls}`]:{color:e.colorSuccess}}},vB=Tc(["Modal","confirm"],e=>{const t=wO(e);return[mB(t)]},$O,{order:-1e3});var pB=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);oy,he(Object.values(y))),x=s.createElement(s.Fragment,null,s.createElement(cS,null),s.createElement(uS,null)),S=e.title!==void 0&&e.title!==null,w=`${a}-body`;return s.createElement("div",{className:`${a}-body-wrapper`},s.createElement("div",{className:G(w,{[`${w}-has-title`]:S})},f,s.createElement("div",{className:`${a}-paragraph`},S&&s.createElement("span",{className:`${a}-title`},e.title),s.createElement("div",{className:`${a}-content`},e.content))),c===void 0||typeof c=="function"?s.createElement(aO,{value:C},s.createElement("div",{className:`${a}-btns`},typeof c=="function"?c(x,{OkBtn:uS,CancelBtn:cS}):x)):c,s.createElement(vB,{prefixCls:t}))}const gB=e=>{const{close:t,zIndex:n,maskStyle:r,direction:o,prefixCls:a,wrapClassName:i,rootPrefixCls:l,bodyStyle:c,closable:u=!1,onConfirm:d,styles:f}=e,m=`${a}-confirm`,v=e.width||416,p=e.style||{},b=e.mask===void 0?!0:e.mask,h=e.maskClosable===void 0?!1:e.maskClosable,g=G(m,`${m}-${e.type}`,{[`${m}-rtl`]:o==="rtl"},e.className),[,y]=Kn(),C=s.useMemo(()=>n!==void 0?n:y.zIndexPopupBase+K2,[n,y]);return s.createElement(OO,Object.assign({},e,{className:g,wrapClassName:G({[`${m}-centered`]:!!e.centered},i),onCancel:()=>{t==null||t({triggerCancel:!0}),d==null||d(!1)},title:"",footer:null,transitionName:za(l||"","zoom",e.transitionName),maskTransitionName:za(l||"","fade",e.maskTransitionName),mask:b,maskClosable:h,style:p,styles:Object.assign({body:c,mask:r},f),width:v,zIndex:C,closable:u}),s.createElement(RO,Object.assign({},e,{confirmPrefixCls:m})))},PO=e=>{const{rootPrefixCls:t,iconPrefixCls:n,direction:r,theme:o}=e;return s.createElement(ra,{prefixCls:t,iconPrefixCls:n,direction:r,theme:o},s.createElement(gB,Object.assign({},e)))},ti=[];let IO="";function NO(){return IO}const hB=e=>{var t,n;const{prefixCls:r,getContainer:o,direction:a}=e,i=i2(),l=s.useContext(lt),c=NO()||l.getPrefixCls(),u=r||`${c}-modal`;let d=o;return d===!1&&(d=void 0),B.createElement(PO,Object.assign({},e,{rootPrefixCls:c,prefixCls:u,iconPrefixCls:l.iconPrefixCls,theme:l.theme,direction:a??l.direction,locale:(n=(t=l.locale)===null||t===void 0?void 0:t.Modal)!==null&&n!==void 0?n:i,getContainer:d}))};function kc(e){const t=j2(),n=document.createDocumentFragment();let r=Object.assign(Object.assign({},e),{close:c,open:!0}),o,a;function i(...d){var f;if(d.some(p=>p==null?void 0:p.triggerCancel)){var v;(f=e.onCancel)===null||f===void 0||(v=f).call.apply(v,[e,()=>{}].concat(he(d.slice(1))))}for(let p=0;p{const f=t.getPrefixCls(void 0,NO()),m=t.getIconPrefixCls(),v=t.getTheme(),p=B.createElement(hB,Object.assign({},d));a=A0()(B.createElement(ra,{prefixCls:f,iconPrefixCls:m,theme:v},t.holderRender?t.holderRender(p):p),n)})}function c(...d){r=Object.assign(Object.assign({},r),{open:!1,afterClose:()=>{typeof e.afterClose=="function"&&e.afterClose(),i.apply(this,d)}}),r.visible&&delete r.visible,l(r)}function u(d){typeof d=="function"?r=d(r):r=Object.assign(Object.assign({},r),d),l(r)}return l(r),ti.push(c),{destroy:c,update:u}}function TO(e){return Object.assign(Object.assign({},e),{type:"warning"})}function MO(e){return Object.assign(Object.assign({},e),{type:"info"})}function _O(e){return Object.assign(Object.assign({},e),{type:"success"})}function zO(e){return Object.assign(Object.assign({},e),{type:"error"})}function jO(e){return Object.assign(Object.assign({},e),{type:"confirm"})}function yB({rootPrefixCls:e}){IO=e}var bB=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n,{afterClose:r,config:o}=e,a=bB(e,["afterClose","config"]);const[i,l]=s.useState(!0),[c,u]=s.useState(o),{direction:d,getPrefixCls:f}=s.useContext(lt),m=f("modal"),v=f(),p=()=>{var y;r(),(y=c.afterClose)===null||y===void 0||y.call(c)},b=(...y)=>{var C;if(l(!1),y.some(w=>w==null?void 0:w.triggerCancel)){var S;(C=c.onCancel)===null||C===void 0||(S=C).call.apply(S,[c,()=>{}].concat(he(y.slice(1))))}};s.useImperativeHandle(t,()=>({destroy:b,update:y=>{u(C=>{const x=typeof y=="function"?y(C):y;return Object.assign(Object.assign({},C),x)})}}));const h=(n=c.okCancel)!==null&&n!==void 0?n:c.type==="confirm",[g]=$o("Modal",yo.Modal);return s.createElement(PO,Object.assign({prefixCls:m,rootPrefixCls:v},c,{close:b,open:i,afterClose:p,okText:c.okText||(h?g==null?void 0:g.okText:g==null?void 0:g.justOkText),direction:c.direction||d,cancelText:c.cancelText||(g==null?void 0:g.cancelText)},a))},SB=s.forwardRef(CB);let jS=0;const xB=s.memo(s.forwardRef((e,t)=>{const[n,r]=Oj();return s.useImperativeHandle(t,()=>({patchElement:r}),[]),s.createElement(s.Fragment,null,n)}));function wB(){const e=s.useRef(null),[t,n]=s.useState([]);s.useEffect(()=>{t.length&&(he(t).forEach(i=>{i()}),n([]))},[t]);const r=s.useCallback(a=>function(l){var c;jS+=1;const u=s.createRef();let d;const f=new Promise(h=>{d=h});let m=!1,v;const p=s.createElement(SB,{key:`modal-${jS}`,config:a(l),ref:u,afterClose:()=>{v==null||v()},isSilent:()=>m,onConfirm:h=>{d(h)}});return v=(c=e.current)===null||c===void 0?void 0:c.patchElement(p),v&&ti.push(v),{destroy:()=>{function h(){var g;(g=u.current)===null||g===void 0||g.destroy()}u.current?h():n(g=>[].concat(he(g),[h]))},update:h=>{function g(){var y;(y=u.current)===null||y===void 0||y.update(h)}u.current?g():n(y=>[].concat(he(y),[g]))},then:h=>(m=!0,f.then(h))}},[]);return[s.useMemo(()=>({info:r(MO),success:r(_O),error:r(zO),warning:r(TO),confirm:r(jO)}),[]),s.createElement(xB,{key:"modal-holder",ref:e})]}const $B=B.createContext({});function LO(e){return t=>s.createElement(ra,{theme:{token:{motion:!1,zIndexPopupBase:0}}},s.createElement(e,Object.assign({},t)))}const DO=(e,t,n,r,o)=>LO(i=>{const{prefixCls:l,style:c}=i,u=s.useRef(null),[d,f]=s.useState(0),[m,v]=s.useState(0),[p,b]=on(!1,{value:i.open}),{getPrefixCls:h}=s.useContext(lt),g=h(r||"select",l);s.useEffect(()=>{if(b(!0),typeof ResizeObserver<"u"){const x=new ResizeObserver(w=>{const E=w[0].target;f(E.offsetHeight+8),v(E.offsetWidth)}),S=setInterval(()=>{var w;const E=o?`.${o(g)}`:`.${g}-dropdown`,O=(w=u.current)===null||w===void 0?void 0:w.querySelector(E);O&&(clearInterval(S),x.observe(O))},10);return()=>{clearInterval(S),x.disconnect()}}},[]);let y=Object.assign(Object.assign({},i),{style:Object.assign(Object.assign({},c),{margin:0}),open:p,visible:p,getPopupContainer:()=>u.current});t&&Object.assign(y,{[t]:{overflow:{adjustX:!1,adjustY:!1}}});const C={paddingBottom:d,position:"relative",minWidth:m};return s.createElement("div",{ref:u,style:C},s.createElement(e,Object.assign({},y)))}),Z0=function(){if(typeof navigator>"u"||typeof window>"u")return!1;var e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e==null?void 0:e.substr(0,4))};var em=function(t){var n=t.className,r=t.customizeIcon,o=t.customizeIconProps,a=t.children,i=t.onMouseDown,l=t.onClick,c=typeof r=="function"?r(o):r;return s.createElement("span",{className:n,onMouseDown:function(d){d.preventDefault(),i==null||i(d)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:l,"aria-hidden":!0},c!==void 0?c:s.createElement("span",{className:G(n.split(/\s+/).map(function(u){return"".concat(u,"-icon")}))},a))},EB=function(t,n,r,o,a){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,l=arguments.length>6?arguments[6]:void 0,c=arguments.length>7?arguments[7]:void 0,u=B.useMemo(function(){if(We(o)==="object")return o.clearIcon;if(a)return a},[o,a]),d=B.useMemo(function(){return!!(!i&&o&&(r.length||l)&&!(c==="combobox"&&l===""))},[o,i,r.length,l,c]);return{allowClear:d,clearIcon:B.createElement(em,{className:"".concat(t,"-clear"),onMouseDown:n,customizeIcon:u},"×")}},BO=s.createContext(null);function OB(){return s.useContext(BO)}function RB(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10,t=s.useState(!1),n=ee(t,2),r=n[0],o=n[1],a=s.useRef(null),i=function(){window.clearTimeout(a.current)};s.useEffect(function(){return i},[]);var l=function(u,d){i(),a.current=window.setTimeout(function(){o(u),d&&d()},e)};return[r,l,i]}function kO(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,t=s.useRef(null),n=s.useRef(null);s.useEffect(function(){return function(){window.clearTimeout(n.current)}},[]);function r(o){(o||t.current===null)&&(t.current=o),window.clearTimeout(n.current),n.current=window.setTimeout(function(){t.current=null},e)}return[function(){return t.current},r]}function PB(e,t,n,r){var o=s.useRef(null);o.current={open:t,triggerOpen:n,customizedTrigger:r},s.useEffect(function(){function a(i){var l;if(!((l=o.current)!==null&&l!==void 0&&l.customizedTrigger)){var c=i.target;c.shadowRoot&&i.composed&&(c=i.composedPath()[0]||c),o.current.open&&e().filter(function(u){return u}).every(function(u){return!u.contains(c)&&u!==c})&&o.current.triggerOpen(!1)}}return window.addEventListener("mousedown",a),function(){return window.removeEventListener("mousedown",a)}},[])}function IB(e){return e&&![ke.ESC,ke.SHIFT,ke.BACKSPACE,ke.TAB,ke.WIN_KEY,ke.ALT,ke.META,ke.WIN_KEY_RIGHT,ke.CTRL,ke.SEMICOLON,ke.EQUALS,ke.CAPS_LOCK,ke.CONTEXT_MENU,ke.F1,ke.F2,ke.F3,ke.F4,ke.F5,ke.F6,ke.F7,ke.F8,ke.F9,ke.F10,ke.F11,ke.F12].includes(e)}var NB=["prefixCls","invalidate","item","renderItem","responsive","responsiveDisabled","registerSize","itemKey","className","style","children","display","order","component"],Mi=void 0;function TB(e,t){var n=e.prefixCls,r=e.invalidate,o=e.item,a=e.renderItem,i=e.responsive,l=e.responsiveDisabled,c=e.registerSize,u=e.itemKey,d=e.className,f=e.style,m=e.children,v=e.display,p=e.order,b=e.component,h=b===void 0?"div":b,g=ut(e,NB),y=i&&!v;function C(O){c(u,O)}s.useEffect(function(){return function(){C(null)}},[]);var x=a&&o!==Mi?a(o,{index:p}):m,S;r||(S={opacity:y?0:1,height:y?0:Mi,overflowY:y?"hidden":Mi,order:i?p:Mi,pointerEvents:y?"none":Mi,position:y?"absolute":Mi});var w={};y&&(w["aria-hidden"]=!0);var E=s.createElement(h,pe({className:G(!r&&n,d),style:k(k({},S),f)},w,g,{ref:t}),x);return i&&(E=s.createElement(cr,{onResize:function($){var R=$.offsetWidth;C(R)},disabled:l},E)),E}var Ns=s.forwardRef(TB);Ns.displayName="Item";function MB(e){if(typeof MessageChannel>"u")Lt(e);else{var t=new MessageChannel;t.port1.onmessage=function(){return e()},t.port2.postMessage(void 0)}}function _B(){var e=s.useRef(null),t=function(r){e.current||(e.current=[],MB(function(){Yr.unstable_batchedUpdates(function(){e.current.forEach(function(o){o()}),e.current=null})})),e.current.push(r)};return t}function ns(e,t){var n=s.useState(t),r=ee(n,2),o=r[0],a=r[1],i=Vt(function(l){e(function(){a(l)})});return[o,i]}var Vd=B.createContext(null),zB=["component"],jB=["className"],LB=["className"],DB=function(t,n){var r=s.useContext(Vd);if(!r){var o=t.component,a=o===void 0?"div":o,i=ut(t,zB);return s.createElement(a,pe({},i,{ref:n}))}var l=r.className,c=ut(r,jB),u=t.className,d=ut(t,LB);return s.createElement(Vd.Provider,{value:null},s.createElement(Ns,pe({ref:n,className:G(l,u)},c,d)))},AO=s.forwardRef(DB);AO.displayName="RawItem";var BB=["prefixCls","data","renderItem","renderRawItem","itemKey","itemWidth","ssr","style","className","maxCount","renderRest","renderRawRest","suffix","component","itemComponent","onVisibleChange"],FO="responsive",HO="invalidate";function kB(e){return"+ ".concat(e.length," ...")}function AB(e,t){var n=e.prefixCls,r=n===void 0?"rc-overflow":n,o=e.data,a=o===void 0?[]:o,i=e.renderItem,l=e.renderRawItem,c=e.itemKey,u=e.itemWidth,d=u===void 0?10:u,f=e.ssr,m=e.style,v=e.className,p=e.maxCount,b=e.renderRest,h=e.renderRawRest,g=e.suffix,y=e.component,C=y===void 0?"div":y,x=e.itemComponent,S=e.onVisibleChange,w=ut(e,BB),E=f==="full",O=_B(),$=ns(O,null),R=ee($,2),I=R[0],N=R[1],T=I||0,P=ns(O,new Map),M=ee(P,2),_=M[0],z=M[1],j=ns(O,0),L=ee(j,2),F=L[0],W=L[1],H=ns(O,0),A=ee(H,2),V=A[0],K=A[1],Y=ns(O,0),re=ee(Y,2),J=re[0],ae=re[1],le=s.useState(null),te=ee(le,2),q=te[0],X=te[1],Q=s.useState(null),Z=ee(Q,2),ne=Z[0],ie=Z[1],fe=s.useMemo(function(){return ne===null&&E?Number.MAX_SAFE_INTEGER:ne||0},[ne,I]),$e=s.useState(!1),Se=ee($e,2),oe=Se[0],se=Se[1],ye="".concat(r,"-item"),ce=Math.max(F,V),we=p===FO,Oe=a.length&&we,Le=p===HO,je=Oe||typeof p=="number"&&a.length>p,xe=s.useMemo(function(){var Ke=a;return Oe?I===null&&E?Ke=a:Ke=a.slice(0,Math.min(a.length,T/d)):typeof p=="number"&&(Ke=a.slice(0,p)),Ke},[a,d,I,p,Oe]),Pe=s.useMemo(function(){return Oe?a.slice(fe+1):a.slice(xe.length)},[a,xe,Oe,fe]),Ce=s.useCallback(function(Ke,Fe){var Re;return typeof c=="function"?c(Ke):(Re=c&&(Ke==null?void 0:Ke[c]))!==null&&Re!==void 0?Re:Fe},[c]),ve=s.useCallback(i||function(Ke){return Ke},[i]);function Ee(Ke,Fe,Re){ne===Ke&&(Fe===void 0||Fe===q)||(ie(Ke),Re||(se(KeT){Ee(qe-1,Ke-Je-J+V);break}}g&&Te(0)+J>T&&X(null)}},[T,_,V,J,Ce,xe]);var Qe=oe&&!!Pe.length,pt={};q!==null&&Oe&&(pt={position:"absolute",left:q,top:0});var gt={prefixCls:ye,responsive:Oe,component:x,invalidate:Le},ft=l?function(Ke,Fe){var Re=Ce(Ke,Fe);return s.createElement(Vd.Provider,{key:Re,value:k(k({},gt),{},{order:Fe,item:Ke,itemKey:Re,registerSize:ge,display:Fe<=fe})},l(Ke,Fe))}:function(Ke,Fe){var Re=Ce(Ke,Fe);return s.createElement(Ns,pe({},gt,{order:Fe,key:Re,item:Ke,renderItem:ve,itemKey:Re,registerSize:ge,display:Fe<=fe}))},Bt={order:Qe?fe:Number.MAX_SAFE_INTEGER,className:"".concat(ye,"-rest"),registerSize:me,display:Qe},xt=b||kB,st=h?s.createElement(Vd.Provider,{value:k(k({},gt),Bt)},h(Pe)):s.createElement(Ns,pe({},gt,Bt),typeof xt=="function"?xt(Pe):xt),at=s.createElement(C,pe({className:G(!Le&&r,v),style:m,ref:t},w),xe.map(ft),je?st:null,g&&s.createElement(Ns,pe({},gt,{responsive:we,responsiveDisabled:!Oe,order:fe,className:"".concat(ye,"-suffix"),registerSize:ue,display:!0,style:pt}),g));return we?s.createElement(cr,{onResize:de,disabled:!Oe},at):at}var jo=s.forwardRef(AB);jo.displayName="Overflow";jo.Item=AO;jo.RESPONSIVE=FO;jo.INVALIDATE=HO;function FB(e,t,n){var r=k(k({},e),t);return Object.keys(t).forEach(function(o){var a=t[o];typeof a=="function"&&(r[o]=function(){for(var i,l=arguments.length,c=new Array(l),u=0;uC&&(Se="".concat(oe.slice(0,C),"..."))}var se=function(ce){ce&&ce.stopPropagation(),O(Z)};return typeof w=="function"?ae(fe,Se,ne,$e,se):J(Z,Se,ne,$e,se)},te=function(Z){if(!o.length)return null;var ne=typeof S=="function"?S(Z):S;return typeof w=="function"?ae(void 0,ne,!1,!1,void 0,!0):J({title:ne},ne,!1)},q=s.createElement("div",{className:"".concat(K,"-search"),style:{width:L},onFocus:function(){V(!0)},onBlur:function(){V(!1)}},s.createElement(VO,{ref:c,open:a,prefixCls:r,id:n,inputElement:null,disabled:d,autoFocus:v,autoComplete:p,editable:re,activeDescendantId:b,value:Y,onKeyDown:I,onMouseDown:N,onChange:$,onPaste:R,onCompositionStart:T,onCompositionEnd:P,onBlur:M,tabIndex:h,attrs:tr(t,!0)}),s.createElement("span",{ref:_,className:"".concat(K,"-search-mirror"),"aria-hidden":!0},Y," ")),X=s.createElement(jo,{prefixCls:"".concat(K,"-overflow"),data:o,renderItem:le,renderRest:te,suffix:q,itemKey:XB,maxCount:y});return s.createElement("span",{className:"".concat(K,"-wrap")},X,!o.length&&!Y&&s.createElement("span",{className:"".concat(K,"-placeholder")},u))},QB=function(t){var n=t.inputElement,r=t.prefixCls,o=t.id,a=t.inputRef,i=t.disabled,l=t.autoFocus,c=t.autoComplete,u=t.activeDescendantId,d=t.mode,f=t.open,m=t.values,v=t.placeholder,p=t.tabIndex,b=t.showSearch,h=t.searchValue,g=t.activeValue,y=t.maxLength,C=t.onInputKeyDown,x=t.onInputMouseDown,S=t.onInputChange,w=t.onInputPaste,E=t.onInputCompositionStart,O=t.onInputCompositionEnd,$=t.onInputBlur,R=t.title,I=s.useState(!1),N=ee(I,2),T=N[0],P=N[1],M=d==="combobox",_=M||b,z=m[0],j=h||"";M&&g&&!T&&(j=g),s.useEffect(function(){M&&P(!1)},[M,g]);var L=d!=="combobox"&&!f&&!b?!1:!!j,F=R===void 0?KO(z):R,W=s.useMemo(function(){return z?null:s.createElement("span",{className:"".concat(r,"-selection-placeholder"),style:L?{visibility:"hidden"}:void 0},v)},[z,L,v,r]);return s.createElement("span",{className:"".concat(r,"-selection-wrap")},s.createElement("span",{className:"".concat(r,"-selection-search")},s.createElement(VO,{ref:a,prefixCls:r,id:o,open:f,inputElement:n,disabled:i,autoFocus:l,autoComplete:c,editable:_,activeDescendantId:u,value:j,onKeyDown:C,onMouseDown:x,onChange:function(A){P(!0),S(A)},onPaste:w,onCompositionStart:E,onCompositionEnd:O,onBlur:$,tabIndex:p,attrs:tr(t,!0),maxLength:M?y:void 0})),!M&&z?s.createElement("span",{className:"".concat(r,"-selection-item"),title:F,style:L?{visibility:"hidden"}:void 0},z.label):null,W)},JB=function(t,n){var r=s.useRef(null),o=s.useRef(!1),a=t.prefixCls,i=t.open,l=t.mode,c=t.showSearch,u=t.tokenWithEnter,d=t.disabled,f=t.prefix,m=t.autoClearSearchValue,v=t.onSearch,p=t.onSearchSubmit,b=t.onToggleOpen,h=t.onInputKeyDown,g=t.onInputBlur,y=t.domRef;s.useImperativeHandle(n,function(){return{focus:function(F){r.current.focus(F)},blur:function(){r.current.blur()}}});var C=kO(0),x=ee(C,2),S=x[0],w=x[1],E=function(F){var W=F.which,H=r.current instanceof HTMLTextAreaElement;!H&&i&&(W===ke.UP||W===ke.DOWN)&&F.preventDefault(),h&&h(F),W===ke.ENTER&&l==="tags"&&!o.current&&!i&&(p==null||p(F.target.value)),!(H&&!i&&~[ke.UP,ke.DOWN,ke.LEFT,ke.RIGHT].indexOf(W))&&IB(W)&&b(!0)},O=function(){w(!0)},$=s.useRef(null),R=function(F){v(F,!0,o.current)!==!1&&b(!0)},I=function(){o.current=!0},N=function(F){o.current=!1,l!=="combobox"&&R(F.target.value)},T=function(F){var W=F.target.value;if(u&&$.current&&/[\r\n]/.test($.current)){var H=$.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");W=W.replace(H,$.current)}$.current=null,R(W)},P=function(F){var W=F.clipboardData,H=W==null?void 0:W.getData("text");$.current=H||""},M=function(F){var W=F.target;if(W!==r.current){var H=document.body.style.msTouchAction!==void 0;H?setTimeout(function(){r.current.focus()}):r.current.focus()}},_=function(F){var W=S();F.target!==r.current&&!W&&!(l==="combobox"&&d)&&F.preventDefault(),(l!=="combobox"&&(!c||!W)||!i)&&(i&&m!==!1&&v("",!0,!1),b())},z={inputRef:r,onInputKeyDown:E,onInputMouseDown:O,onInputChange:T,onInputPaste:P,onInputCompositionStart:I,onInputCompositionEnd:N,onInputBlur:g},j=l==="multiple"||l==="tags"?s.createElement(YB,pe({},t,z)):s.createElement(QB,pe({},t,z));return s.createElement("div",{ref:y,className:"".concat(a,"-selector"),onClick:M,onMouseDown:_},f&&s.createElement("div",{className:"".concat(a,"-prefix")},f),j)},ZB=s.forwardRef(JB);function ek(e){var t=e.prefixCls,n=e.align,r=e.arrow,o=e.arrowPos,a=r||{},i=a.className,l=a.content,c=o.x,u=c===void 0?0:c,d=o.y,f=d===void 0?0:d,m=s.useRef();if(!n||!n.points)return null;var v={position:"absolute"};if(n.autoArrow!==!1){var p=n.points[0],b=n.points[1],h=p[0],g=p[1],y=b[0],C=b[1];h===y||!["t","b"].includes(h)?v.top=f:h==="t"?v.top=0:v.bottom=0,g===C||!["l","r"].includes(g)?v.left=u:g==="l"?v.left=0:v.right=0}return s.createElement("div",{ref:m,className:G("".concat(t,"-arrow"),i),style:v},l)}function tk(e){var t=e.prefixCls,n=e.open,r=e.zIndex,o=e.mask,a=e.motion;return o?s.createElement(to,pe({},a,{motionAppear:!0,visible:n,removeOnLeave:!0}),function(i){var l=i.className;return s.createElement("div",{style:{zIndex:r},className:G("".concat(t,"-mask"),l)})}):null}var nk=s.memo(function(e){var t=e.children;return t},function(e,t){return t.cache}),rk=s.forwardRef(function(e,t){var n=e.popup,r=e.className,o=e.prefixCls,a=e.style,i=e.target,l=e.onVisibleChanged,c=e.open,u=e.keepDom,d=e.fresh,f=e.onClick,m=e.mask,v=e.arrow,p=e.arrowPos,b=e.align,h=e.motion,g=e.maskMotion,y=e.forceRender,C=e.getPopupContainer,x=e.autoDestroy,S=e.portal,w=e.zIndex,E=e.onMouseEnter,O=e.onMouseLeave,$=e.onPointerEnter,R=e.onPointerDownCapture,I=e.ready,N=e.offsetX,T=e.offsetY,P=e.offsetR,M=e.offsetB,_=e.onAlign,z=e.onPrepare,j=e.stretch,L=e.targetWidth,F=e.targetHeight,W=typeof n=="function"?n():n,H=c||u,A=(C==null?void 0:C.length)>0,V=s.useState(!C||!A),K=ee(V,2),Y=K[0],re=K[1];if(Ot(function(){!Y&&A&&i&&re(!0)},[Y,A,i]),!Y)return null;var J="auto",ae={left:"-1000vw",top:"-1000vh",right:J,bottom:J};if(I||!c){var le,te=b.points,q=b.dynamicInset||((le=b._experimental)===null||le===void 0?void 0:le.dynamicInset),X=q&&te[0][1]==="r",Q=q&&te[0][0]==="b";X?(ae.right=P,ae.left=J):(ae.left=N,ae.right=J),Q?(ae.bottom=M,ae.top=J):(ae.top=T,ae.bottom=J)}var Z={};return j&&(j.includes("height")&&F?Z.height=F:j.includes("minHeight")&&F&&(Z.minHeight=F),j.includes("width")&&L?Z.width=L:j.includes("minWidth")&&L&&(Z.minWidth=L)),c||(Z.pointerEvents="none"),s.createElement(S,{open:y||H,getContainer:C&&function(){return C(i)},autoDestroy:x},s.createElement(tk,{prefixCls:o,open:c,zIndex:w,mask:m,motion:g}),s.createElement(cr,{onResize:_,disabled:!c},function(ne){return s.createElement(to,pe({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:y,leavedClassName:"".concat(o,"-hidden")},h,{onAppearPrepare:z,onEnterPrepare:z,visible:c,onVisibleChanged:function(fe){var $e;h==null||($e=h.onVisibleChanged)===null||$e===void 0||$e.call(h,fe),l(fe)}}),function(ie,fe){var $e=ie.className,Se=ie.style,oe=G(o,$e,r);return s.createElement("div",{ref:Or(ne,t,fe),className:oe,style:k(k(k(k({"--arrow-x":"".concat(p.x||0,"px"),"--arrow-y":"".concat(p.y||0,"px")},ae),Z),Se),{},{boxSizing:"border-box",zIndex:w},a),onMouseEnter:E,onMouseLeave:O,onPointerEnter:$,onClick:f,onPointerDownCapture:R},v&&s.createElement(ek,{prefixCls:o,arrow:v,arrowPos:p,align:b}),s.createElement(nk,{cache:!c&&!d},W))})}))}),ok=s.forwardRef(function(e,t){var n=e.children,r=e.getTriggerDOMNode,o=Lo(n),a=s.useCallback(function(l){ec(t,r?r(l):l)},[r]),i=na(a,Ci(n));return o?s.cloneElement(n,{ref:i}):n}),BS=s.createContext(null);function kS(e){return e?Array.isArray(e)?e:[e]:[]}function ak(e,t,n,r){return s.useMemo(function(){var o=kS(n??t),a=kS(r??t),i=new Set(o),l=new Set(a);return e&&(i.has("hover")&&(i.delete("hover"),i.add("click")),l.has("hover")&&(l.delete("hover"),l.add("click"))),[i,l]},[e,t,n,r])}function ik(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0;return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function lk(e,t,n,r){for(var o=n.points,a=Object.keys(e),i=0;i1&&arguments[1]!==void 0?arguments[1]:1;return Number.isNaN(e)?t:e}function rs(e){return fc(parseFloat(e),0)}function FS(e,t){var n=k({},e);return(t||[]).forEach(function(r){if(!(r instanceof HTMLBodyElement||r instanceof HTMLHtmlElement)){var o=Ac(r).getComputedStyle(r),a=o.overflow,i=o.overflowClipMargin,l=o.borderTopWidth,c=o.borderBottomWidth,u=o.borderLeftWidth,d=o.borderRightWidth,f=r.getBoundingClientRect(),m=r.offsetHeight,v=r.clientHeight,p=r.offsetWidth,b=r.clientWidth,h=rs(l),g=rs(c),y=rs(u),C=rs(d),x=fc(Math.round(f.width/p*1e3)/1e3),S=fc(Math.round(f.height/m*1e3)/1e3),w=(p-b-y-C)*x,E=(m-v-h-g)*S,O=h*S,$=g*S,R=y*x,I=C*x,N=0,T=0;if(a==="clip"){var P=rs(i);N=P*x,T=P*S}var M=f.x+R-N,_=f.y+O-T,z=M+f.width+2*N-R-I-w,j=_+f.height+2*T-O-$-E;n.left=Math.max(n.left,M),n.top=Math.max(n.top,_),n.right=Math.min(n.right,z),n.bottom=Math.min(n.bottom,j)}}),n}function HS(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n="".concat(t),r=n.match(/^(.*)\%$/);return r?e*(parseFloat(r[1])/100):parseFloat(n)}function VS(e,t){var n=t||[],r=ee(n,2),o=r[0],a=r[1];return[HS(e.width,o),HS(e.height,a)]}function WS(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return[e[0],e[1]]}function _i(e,t){var n=t[0],r=t[1],o,a;return n==="t"?a=e.y:n==="b"?a=e.y+e.height:a=e.y+e.height/2,r==="l"?o=e.x:r==="r"?o=e.x+e.width:o=e.x+e.width/2,{x:o,y:a}}function ia(e,t){var n={t:"b",b:"t",l:"r",r:"l"};return e.map(function(r,o){return o===t?n[r]||"c":r}).join("")}function sk(e,t,n,r,o,a,i){var l=s.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:o[r]||{}}),c=ee(l,2),u=c[0],d=c[1],f=s.useRef(0),m=s.useMemo(function(){return t?Xg(t):[]},[t]),v=s.useRef({}),p=function(){v.current={}};e||p();var b=Vt(function(){if(t&&n&&e){let gn=function(oo,ao){var Oi=arguments.length>2&&arguments[2]!==void 0?arguments[2]:we,Yc=H.x+oo,Qc=H.y+ao,ct=Yc+Q,ht=Qc+X,an=Math.max(Yc,Oi.left),yn=Math.max(Qc,Oi.top),ln=Math.min(ct,Oi.right),Ri=Math.min(ht,Oi.bottom);return Math.max(0,(ln-an)*(Ri-yn))},ar=function(){Et=H.y+qe,Pt=Et+X,wt=H.x+Re,Tt=wt+Q};var wn=gn,ro=ar,y,C,x,S,w=t,E=w.ownerDocument,O=Ac(w),$=O.getComputedStyle(w),R=$.position,I=w.style.left,N=w.style.top,T=w.style.right,P=w.style.bottom,M=w.style.overflow,_=k(k({},o[r]),a),z=E.createElement("div");(y=w.parentElement)===null||y===void 0||y.appendChild(z),z.style.left="".concat(w.offsetLeft,"px"),z.style.top="".concat(w.offsetTop,"px"),z.style.position=R,z.style.height="".concat(w.offsetHeight,"px"),z.style.width="".concat(w.offsetWidth,"px"),w.style.left="0",w.style.top="0",w.style.right="auto",w.style.bottom="auto",w.style.overflow="hidden";var j;if(Array.isArray(n))j={x:n[0],y:n[1],width:0,height:0};else{var L,F,W=n.getBoundingClientRect();W.x=(L=W.x)!==null&&L!==void 0?L:W.left,W.y=(F=W.y)!==null&&F!==void 0?F:W.top,j={x:W.x,y:W.y,width:W.width,height:W.height}}var H=w.getBoundingClientRect(),A=O.getComputedStyle(w),V=A.height,K=A.width;H.x=(C=H.x)!==null&&C!==void 0?C:H.left,H.y=(x=H.y)!==null&&x!==void 0?x:H.top;var Y=E.documentElement,re=Y.clientWidth,J=Y.clientHeight,ae=Y.scrollWidth,le=Y.scrollHeight,te=Y.scrollTop,q=Y.scrollLeft,X=H.height,Q=H.width,Z=j.height,ne=j.width,ie={left:0,top:0,right:re,bottom:J},fe={left:-q,top:-te,right:ae-q,bottom:le-te},$e=_.htmlRegion,Se="visible",oe="visibleFirst";$e!=="scroll"&&$e!==oe&&($e=Se);var se=$e===oe,ye=FS(fe,m),ce=FS(ie,m),we=$e===Se?ce:ye,Oe=se?ce:we;w.style.left="auto",w.style.top="auto",w.style.right="0",w.style.bottom="0";var Le=w.getBoundingClientRect();w.style.left=I,w.style.top=N,w.style.right=T,w.style.bottom=P,w.style.overflow=M,(S=w.parentElement)===null||S===void 0||S.removeChild(z);var je=fc(Math.round(Q/parseFloat(K)*1e3)/1e3),xe=fc(Math.round(X/parseFloat(V)*1e3)/1e3);if(je===0||xe===0||Zs(n)&&!Af(n))return;var Pe=_.offset,Ce=_.targetOffset,ve=VS(H,Pe),Ee=ee(ve,2),de=Ee[0],ge=Ee[1],me=VS(j,Ce),ue=ee(me,2),Te=ue[0],Qe=ue[1];j.x-=Te,j.y-=Qe;var pt=_.points||[],gt=ee(pt,2),ft=gt[0],Bt=gt[1],xt=WS(Bt),st=WS(ft),at=_i(j,xt),Ke=_i(H,st),Fe=k({},_),Re=at.x-Ke.x+de,qe=at.y-Ke.y+ge,Je=gn(Re,qe),Ie=gn(Re,qe,ce),Ne=_i(j,["t","l"]),Xe=_i(H,["t","l"]),Ge=_i(j,["b","r"]),He=_i(H,["b","r"]),et=_.overflow||{},Ue=et.adjustX,Ve=et.adjustY,tt=et.shiftX,dt=et.shiftY,St=function(ao){return typeof ao=="boolean"?ao:ao>=0},Et,Pt,wt,Tt;ar();var It=St(Ve),Be=st[0]===xt[0];if(It&&st[0]==="t"&&(Pt>Oe.bottom||v.current.bt)){var Ae=qe;Be?Ae-=X-Z:Ae=Ne.y-He.y-ge;var De=gn(Re,Ae),ze=gn(Re,Ae,ce);De>Je||De===Je&&(!se||ze>=Ie)?(v.current.bt=!0,qe=Ae,ge=-ge,Fe.points=[ia(st,0),ia(xt,0)]):v.current.bt=!1}if(It&&st[0]==="b"&&(EtJe||bt===Je&&(!se||kt>=Ie)?(v.current.tb=!0,qe=rt,ge=-ge,Fe.points=[ia(st,0),ia(xt,0)]):v.current.tb=!1}var Ut=St(Ue),nt=st[1]===xt[1];if(Ut&&st[1]==="l"&&(Tt>Oe.right||v.current.rl)){var ot=Re;nt?ot-=Q-ne:ot=Ne.x-He.x-de;var yt=gn(ot,qe),Xt=gn(ot,qe,ce);yt>Je||yt===Je&&(!se||Xt>=Ie)?(v.current.rl=!0,Re=ot,de=-de,Fe.points=[ia(st,1),ia(xt,1)]):v.current.rl=!1}if(Ut&&st[1]==="r"&&(wtJe||pr===Je&&(!se||Un>=Ie)?(v.current.lr=!0,Re=pn,de=-de,Fe.points=[ia(st,1),ia(xt,1)]):v.current.lr=!1}ar();var Pn=tt===!0?0:tt;typeof Pn=="number"&&(wtce.right&&(Re-=Tt-ce.right-de,j.x>ce.right-Pn&&(Re+=j.x-ce.right+Pn)));var gr=dt===!0?0:dt;typeof gr=="number"&&(Etce.bottom&&(qe-=Pt-ce.bottom-ge,j.y>ce.bottom-gr&&(qe+=j.y-ce.bottom+gr)));var or=H.x+Re,kn=or+Q,hr=H.y+qe,At=hr+X,Ze=j.x,Ye=Ze+ne,_t=j.y,Dt=_t+Z,Kt=Math.max(or,Ze),Yt=Math.min(kn,Ye),In=(Kt+Yt)/2,xn=In-or,Nn=Math.max(hr,_t),Tn=Math.min(At,Dt),An=(Nn+Tn)/2,vt=An-hr;i==null||i(t,Fe);var mt=Le.right-H.x-(Re+H.width),cn=Le.bottom-H.y-(qe+H.height);je===1&&(Re=Math.round(Re),mt=Math.round(mt)),xe===1&&(qe=Math.round(qe),cn=Math.round(cn));var Gn={ready:!0,offsetX:Re/je,offsetY:qe/xe,offsetR:mt/je,offsetB:cn/xe,arrowX:xn/je,arrowY:vt/xe,scaleX:je,scaleY:xe,align:Fe};d(Gn)}}),h=function(){f.current+=1;var C=f.current;Promise.resolve().then(function(){f.current===C&&b()})},g=function(){d(function(C){return k(k({},C),{},{ready:!1})})};return Ot(g,[r]),Ot(function(){e||g()},[e]),[u.ready,u.offsetX,u.offsetY,u.offsetR,u.offsetB,u.arrowX,u.arrowY,u.scaleX,u.scaleY,u.align,h]}function ck(e,t,n,r,o){Ot(function(){if(e&&t&&n){let m=function(){r(),o()};var f=m,a=t,i=n,l=Xg(a),c=Xg(i),u=Ac(i),d=new Set([u].concat(he(l),he(c)));return d.forEach(function(v){v.addEventListener("scroll",m,{passive:!0})}),u.addEventListener("resize",m,{passive:!0}),r(),function(){d.forEach(function(v){v.removeEventListener("scroll",m),u.removeEventListener("resize",m)})}}},[e,t,n])}function uk(e,t,n,r,o,a,i,l){var c=s.useRef(e);c.current=e;var u=s.useRef(!1);s.useEffect(function(){if(t&&r&&(!o||a)){var f=function(){u.current=!1},m=function(h){var g;c.current&&!i(((g=h.composedPath)===null||g===void 0||(g=g.call(h))===null||g===void 0?void 0:g[0])||h.target)&&!u.current&&l(!1)},v=Ac(r);v.addEventListener("pointerdown",f,!0),v.addEventListener("mousedown",m,!0),v.addEventListener("contextmenu",m,!0);var p=Ld(n);return p&&(p.addEventListener("mousedown",m,!0),p.addEventListener("contextmenu",m,!0)),function(){v.removeEventListener("pointerdown",f,!0),v.removeEventListener("mousedown",m,!0),v.removeEventListener("contextmenu",m,!0),p&&(p.removeEventListener("mousedown",m,!0),p.removeEventListener("contextmenu",m,!0))}}},[t,n,r,o,a]);function d(){u.current=!0}return d}var dk=["prefixCls","children","action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","mask","maskClosable","getPopupContainer","forceRender","autoDestroy","destroyPopupOnHide","popup","popupClassName","popupStyle","popupPlacement","builtinPlacements","popupAlign","zIndex","stretch","getPopupClassNameFromAlign","fresh","alignPoint","onPopupClick","onPopupAlign","arrow","popupMotion","maskMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","className","getTriggerDOMNode"];function fk(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Q0,t=s.forwardRef(function(n,r){var o=n.prefixCls,a=o===void 0?"rc-trigger-popup":o,i=n.children,l=n.action,c=l===void 0?"hover":l,u=n.showAction,d=n.hideAction,f=n.popupVisible,m=n.defaultPopupVisible,v=n.onPopupVisibleChange,p=n.afterPopupVisibleChange,b=n.mouseEnterDelay,h=n.mouseLeaveDelay,g=h===void 0?.1:h,y=n.focusDelay,C=n.blurDelay,x=n.mask,S=n.maskClosable,w=S===void 0?!0:S,E=n.getPopupContainer,O=n.forceRender,$=n.autoDestroy,R=n.destroyPopupOnHide,I=n.popup,N=n.popupClassName,T=n.popupStyle,P=n.popupPlacement,M=n.builtinPlacements,_=M===void 0?{}:M,z=n.popupAlign,j=n.zIndex,L=n.stretch,F=n.getPopupClassNameFromAlign,W=n.fresh,H=n.alignPoint,A=n.onPopupClick,V=n.onPopupAlign,K=n.arrow,Y=n.popupMotion,re=n.maskMotion,J=n.popupTransitionName,ae=n.popupAnimation,le=n.maskTransitionName,te=n.maskAnimation,q=n.className,X=n.getTriggerDOMNode,Q=ut(n,dk),Z=$||R||!1,ne=s.useState(!1),ie=ee(ne,2),fe=ie[0],$e=ie[1];Ot(function(){$e(Z0())},[]);var Se=s.useRef({}),oe=s.useContext(BS),se=s.useMemo(function(){return{registerSubPopup:function(ht,an){Se.current[ht]=an,oe==null||oe.registerSubPopup(ht,an)}}},[oe]),ye=Qf(),ce=s.useState(null),we=ee(ce,2),Oe=we[0],Le=we[1],je=s.useRef(null),xe=Vt(function(ct){je.current=ct,Zs(ct)&&Oe!==ct&&Le(ct),oe==null||oe.registerSubPopup(ye,ct)}),Pe=s.useState(null),Ce=ee(Pe,2),ve=Ce[0],Ee=Ce[1],de=s.useRef(null),ge=Vt(function(ct){Zs(ct)&&ve!==ct&&(Ee(ct),de.current=ct)}),me=s.Children.only(i),ue=(me==null?void 0:me.props)||{},Te={},Qe=Vt(function(ct){var ht,an,yn=ve;return(yn==null?void 0:yn.contains(ct))||((ht=Ld(yn))===null||ht===void 0?void 0:ht.host)===ct||ct===yn||(Oe==null?void 0:Oe.contains(ct))||((an=Ld(Oe))===null||an===void 0?void 0:an.host)===ct||ct===Oe||Object.values(Se.current).some(function(ln){return(ln==null?void 0:ln.contains(ct))||ct===ln})}),pt=AS(a,Y,ae,J),gt=AS(a,re,te,le),ft=s.useState(m||!1),Bt=ee(ft,2),xt=Bt[0],st=Bt[1],at=f??xt,Ke=Vt(function(ct){f===void 0&&st(ct)});Ot(function(){st(f||!1)},[f]);var Fe=s.useRef(at);Fe.current=at;var Re=s.useRef([]);Re.current=[];var qe=Vt(function(ct){var ht;Ke(ct),((ht=Re.current[Re.current.length-1])!==null&&ht!==void 0?ht:at)!==ct&&(Re.current.push(ct),v==null||v(ct))}),Je=s.useRef(),Ie=function(){clearTimeout(Je.current)},Ne=function(ht){var an=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;Ie(),an===0?qe(ht):Je.current=setTimeout(function(){qe(ht)},an*1e3)};s.useEffect(function(){return Ie},[]);var Xe=s.useState(!1),Ge=ee(Xe,2),He=Ge[0],et=Ge[1];Ot(function(ct){(!ct||at)&&et(!0)},[at]);var Ue=s.useState(null),Ve=ee(Ue,2),tt=Ve[0],dt=Ve[1],St=s.useState(null),Et=ee(St,2),Pt=Et[0],wt=Et[1],Tt=function(ht){wt([ht.clientX,ht.clientY])},It=sk(at,Oe,H&&Pt!==null?Pt:ve,P,_,z,V),Be=ee(It,11),Ae=Be[0],De=Be[1],ze=Be[2],rt=Be[3],bt=Be[4],kt=Be[5],Ut=Be[6],nt=Be[7],ot=Be[8],yt=Be[9],Xt=Be[10],pn=ak(fe,c,u,d),pr=ee(pn,2),Un=pr[0],Pn=pr[1],gr=Un.has("click"),or=Pn.has("click")||Pn.has("contextMenu"),kn=Vt(function(){He||Xt()}),hr=function(){Fe.current&&H&&or&&Ne(!1)};ck(at,ve,Oe,kn,hr),Ot(function(){kn()},[Pt,P]),Ot(function(){at&&!(_!=null&&_[P])&&kn()},[JSON.stringify(z)]);var At=s.useMemo(function(){var ct=lk(_,a,yt,H);return G(ct,F==null?void 0:F(yt))},[yt,F,_,a,H]);s.useImperativeHandle(r,function(){return{nativeElement:de.current,popupElement:je.current,forceAlign:kn}});var Ze=s.useState(0),Ye=ee(Ze,2),_t=Ye[0],Dt=Ye[1],Kt=s.useState(0),Yt=ee(Kt,2),In=Yt[0],xn=Yt[1],Nn=function(){if(L&&ve){var ht=ve.getBoundingClientRect();Dt(ht.width),xn(ht.height)}},Tn=function(){Nn(),kn()},An=function(ht){et(!1),Xt(),p==null||p(ht)},vt=function(){return new Promise(function(ht){Nn(),dt(function(){return ht})})};Ot(function(){tt&&(Xt(),tt(),dt(null))},[tt]);function mt(ct,ht,an,yn){Te[ct]=function(ln){var Ri;yn==null||yn(ln),Ne(ht,an);for(var Rm=arguments.length,Wy=new Array(Rm>1?Rm-1:0),Jc=1;Jc1?an-1:0),ln=1;ln1?an-1:0),ln=1;ln1&&arguments[1]!==void 0?arguments[1]:{},n=t.fieldNames,r=t.childrenAsData,o=[],a=UO(n,!1),i=a.label,l=a.value,c=a.options,u=a.groupLabel;function d(f,m){Array.isArray(f)&&f.forEach(function(v){if(m||!(c in v)){var p=v[l];o.push({key:KS(v,o.length),groupOption:m,data:v,label:v[i],value:p})}else{var b=v[u];b===void 0&&r&&(b=v.label),o.push({key:KS(v,o.length),group:!0,data:v,label:b}),d(v[c],!0)}})}return d(e,!1),o}function Qg(e){var t=k({},e);return"props"in t||Object.defineProperty(t,"props",{get:function(){return rn(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),t}}),t}var yk=function(t,n,r){if(!n||!n.length)return null;var o=!1,a=function l(c,u){var d=n2(u),f=d[0],m=d.slice(1);if(!f)return[c];var v=c.split(f);return o=o||v.length>1,v.reduce(function(p,b){return[].concat(he(p),he(l(b,m)))},[]).filter(Boolean)},i=a(t,n);return o?typeof r<"u"?i.slice(0,r):i:null},ey=s.createContext(null);function bk(e){var t=e.visible,n=e.values;if(!t)return null;var r=50;return s.createElement("span",{"aria-live":"polite",style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0}},"".concat(n.slice(0,r).map(function(o){var a=o.label,i=o.value;return["number","string"].includes(We(a))?a:i}).join(", ")),n.length>r?", ...":null)}var Ck=["id","prefixCls","className","showSearch","tagRender","direction","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","notFoundContent","onClear","mode","disabled","loading","getInputElement","getRawInputElement","open","defaultOpen","onDropdownVisibleChange","activeValue","onActiveValueChange","activeDescendantId","searchValue","autoClearSearchValue","onSearch","onSearchSplit","tokenSeparators","allowClear","prefix","suffixIcon","clearIcon","OptionList","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","placement","builtinPlacements","getPopupContainer","showAction","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown"],Sk=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"],Jg=function(t){return t==="tags"||t==="multiple"},xk=s.forwardRef(function(e,t){var n,r=e.id,o=e.prefixCls,a=e.className,i=e.showSearch,l=e.tagRender,c=e.direction,u=e.omitDomProps,d=e.displayValues,f=e.onDisplayValuesChange,m=e.emptyOptions,v=e.notFoundContent,p=v===void 0?"Not Found":v,b=e.onClear,h=e.mode,g=e.disabled,y=e.loading,C=e.getInputElement,x=e.getRawInputElement,S=e.open,w=e.defaultOpen,E=e.onDropdownVisibleChange,O=e.activeValue,$=e.onActiveValueChange,R=e.activeDescendantId,I=e.searchValue,N=e.autoClearSearchValue,T=e.onSearch,P=e.onSearchSplit,M=e.tokenSeparators,_=e.allowClear,z=e.prefix,j=e.suffixIcon,L=e.clearIcon,F=e.OptionList,W=e.animation,H=e.transitionName,A=e.dropdownStyle,V=e.dropdownClassName,K=e.dropdownMatchSelectWidth,Y=e.dropdownRender,re=e.dropdownAlign,J=e.placement,ae=e.builtinPlacements,le=e.getPopupContainer,te=e.showAction,q=te===void 0?[]:te,X=e.onFocus,Q=e.onBlur,Z=e.onKeyUp,ne=e.onKeyDown,ie=e.onMouseDown,fe=ut(e,Ck),$e=Jg(h),Se=(i!==void 0?i:$e)||h==="combobox",oe=k({},fe);Sk.forEach(function(Ze){delete oe[Ze]}),u==null||u.forEach(function(Ze){delete oe[Ze]});var se=s.useState(!1),ye=ee(se,2),ce=ye[0],we=ye[1];s.useEffect(function(){we(Z0())},[]);var Oe=s.useRef(null),Le=s.useRef(null),je=s.useRef(null),xe=s.useRef(null),Pe=s.useRef(null),Ce=s.useRef(!1),ve=RB(),Ee=ee(ve,3),de=Ee[0],ge=Ee[1],me=Ee[2];s.useImperativeHandle(t,function(){var Ze,Ye;return{focus:(Ze=xe.current)===null||Ze===void 0?void 0:Ze.focus,blur:(Ye=xe.current)===null||Ye===void 0?void 0:Ye.blur,scrollTo:function(Dt){var Kt;return(Kt=Pe.current)===null||Kt===void 0?void 0:Kt.scrollTo(Dt)},nativeElement:Oe.current||Le.current}});var ue=s.useMemo(function(){var Ze;if(h!=="combobox")return I;var Ye=(Ze=d[0])===null||Ze===void 0?void 0:Ze.value;return typeof Ye=="string"||typeof Ye=="number"?String(Ye):""},[I,h,d]),Te=h==="combobox"&&typeof C=="function"&&C()||null,Qe=typeof x=="function"&&x(),pt=na(Le,Qe==null||(n=Qe.props)===null||n===void 0?void 0:n.ref),gt=s.useState(!1),ft=ee(gt,2),Bt=ft[0],xt=ft[1];Ot(function(){xt(!0)},[]);var st=on(!1,{defaultValue:w,value:S}),at=ee(st,2),Ke=at[0],Fe=at[1],Re=Bt?Ke:!1,qe=!p&&m;(g||qe&&Re&&h==="combobox")&&(Re=!1);var Je=qe?!1:Re,Ie=s.useCallback(function(Ze){var Ye=Ze!==void 0?Ze:!Re;g||(Fe(Ye),Re!==Ye&&(E==null||E(Ye)))},[g,Re,Fe,E]),Ne=s.useMemo(function(){return(M||[]).some(function(Ze){return[` +`,`\r +`].includes(Ze)})},[M]),Xe=s.useContext(ey)||{},Ge=Xe.maxCount,He=Xe.rawValues,et=function(Ye,_t,Dt){if(!($e&&Yg(Ge)&&(He==null?void 0:He.size)>=Ge)){var Kt=!0,Yt=Ye;$==null||$(null);var In=yk(Ye,M,Yg(Ge)?Ge-He.size:void 0),xn=Dt?null:In;return h!=="combobox"&&xn&&(Yt="",P==null||P(xn),Ie(!1),Kt=!1),T&&ue!==Yt&&T(Yt,{source:_t?"typing":"effect"}),Kt}},Ue=function(Ye){!Ye||!Ye.trim()||T(Ye,{source:"submit"})};s.useEffect(function(){!Re&&!$e&&h!=="combobox"&&et("",!1,!1)},[Re]),s.useEffect(function(){Ke&&g&&Fe(!1),g&&!Ce.current&&ge(!1)},[g]);var Ve=kO(),tt=ee(Ve,2),dt=tt[0],St=tt[1],Et=s.useRef(!1),Pt=function(Ye){var _t=dt(),Dt=Ye.key,Kt=Dt==="Enter";if(Kt&&(h!=="combobox"&&Ye.preventDefault(),Re||Ie(!0)),St(!!ue),Dt==="Backspace"&&!_t&&$e&&!ue&&d.length){for(var Yt=he(d),In=null,xn=Yt.length-1;xn>=0;xn-=1){var Nn=Yt[xn];if(!Nn.disabled){Yt.splice(xn,1),In=Nn;break}}In&&f(Yt,{type:"remove",values:[In]})}for(var Tn=arguments.length,An=new Array(Tn>1?Tn-1:0),vt=1;vt1?_t-1:0),Kt=1;Kt<_t;Kt++)Dt[Kt-1]=arguments[Kt];if(Re){var Yt;(Yt=Pe.current)===null||Yt===void 0||Yt.onKeyUp.apply(Yt,[Ye].concat(Dt))}Ye.key==="Enter"&&(Et.current=!1),Z==null||Z.apply(void 0,[Ye].concat(Dt))},Tt=function(Ye){var _t=d.filter(function(Dt){return Dt!==Ye});f(_t,{type:"remove",values:[Ye]})},It=function(){Et.current=!1},Be=s.useRef(!1),Ae=function(){ge(!0),g||(X&&!Be.current&&X.apply(void 0,arguments),q.includes("focus")&&Ie(!0)),Be.current=!0},De=function(){Ce.current=!0,ge(!1,function(){Be.current=!1,Ce.current=!1,Ie(!1)}),!g&&(ue&&(h==="tags"?T(ue,{source:"submit"}):h==="multiple"&&T("",{source:"blur"})),Q&&Q.apply(void 0,arguments))},ze=[];s.useEffect(function(){return function(){ze.forEach(function(Ze){return clearTimeout(Ze)}),ze.splice(0,ze.length)}},[]);var rt=function(Ye){var _t,Dt=Ye.target,Kt=(_t=je.current)===null||_t===void 0?void 0:_t.getPopupElement();if(Kt&&Kt.contains(Dt)){var Yt=setTimeout(function(){var Tn=ze.indexOf(Yt);if(Tn!==-1&&ze.splice(Tn,1),me(),!ce&&!Kt.contains(document.activeElement)){var An;(An=xe.current)===null||An===void 0||An.focus()}});ze.push(Yt)}for(var In=arguments.length,xn=new Array(In>1?In-1:0),Nn=1;Nn"u"?"undefined":We(navigator))==="object"&&/Firefox/i.test(navigator.userAgent);const qO=function(e,t,n,r){var o=s.useRef(!1),a=s.useRef(null);function i(){clearTimeout(a.current),o.current=!0,a.current=setTimeout(function(){o.current=!1},50)}var l=s.useRef({top:e,bottom:t,left:n,right:r});return l.current.top=e,l.current.bottom=t,l.current.left=n,l.current.right=r,function(c,u){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,f=c?u<0&&l.current.left||u>0&&l.current.right:u<0&&l.current.top||u>0&&l.current.bottom;return d&&f?(clearTimeout(a.current),o.current=!1):(!f||o.current)&&i(),!o.current&&f}};function Rk(e,t,n,r,o,a,i){var l=s.useRef(0),c=s.useRef(null),u=s.useRef(null),d=s.useRef(!1),f=qO(t,n,r,o);function m(y,C){if(Lt.cancel(c.current),!f(!1,C)){var x=y;if(!x._virtualHandled)x._virtualHandled=!0;else return;l.current+=C,u.current=C,US||x.preventDefault(),c.current=Lt(function(){var S=d.current?10:1;i(l.current*S,!1),l.current=0})}}function v(y,C){i(C,!0),US||y.preventDefault()}var p=s.useRef(null),b=s.useRef(null);function h(y){if(e){Lt.cancel(b.current),b.current=Lt(function(){p.current=null},2);var C=y.deltaX,x=y.deltaY,S=y.shiftKey,w=C,E=x;(p.current==="sx"||!p.current&&S&&x&&!C)&&(w=x,E=0,p.current="sx");var O=Math.abs(w),$=Math.abs(E);p.current===null&&(p.current=a&&O>$?"x":"y"),p.current==="y"?m(y,E):v(y,w)}}function g(y){e&&(d.current=y.detail===u.current)}return[h,g]}function Pk(e,t,n,r){var o=s.useMemo(function(){return[new Map,[]]},[e,n.id,r]),a=ee(o,2),i=a[0],l=a[1],c=function(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:d,m=i.get(d),v=i.get(f);if(m===void 0||v===void 0)for(var p=e.length,b=l.length;b0&&arguments[0]!==void 0?arguments[0]:!1;d();var p=function(){var g=!1;l.current.forEach(function(y,C){if(y&&y.offsetParent){var x=y.offsetHeight,S=getComputedStyle(y),w=S.marginTop,E=S.marginBottom,O=GS(w),$=GS(E),R=x+O+$;c.current.get(C)!==R&&(c.current.set(C,R),g=!0)}}),g&&i(function(y){return y+1})};if(v)p();else{u.current+=1;var b=u.current;Promise.resolve().then(function(){b===u.current&&p()})}}function m(v,p){var b=e(v);l.current.get(b),p?(l.current.set(b,p),f()):l.current.delete(b)}return s.useEffect(function(){return d},[]),[m,f,c.current,a]}var qS=14/15;function Tk(e,t,n){var r=s.useRef(!1),o=s.useRef(0),a=s.useRef(0),i=s.useRef(null),l=s.useRef(null),c,u=function(v){if(r.current){var p=Math.ceil(v.touches[0].pageX),b=Math.ceil(v.touches[0].pageY),h=o.current-p,g=a.current-b,y=Math.abs(h)>Math.abs(g);y?o.current=p:a.current=b;var C=n(y,y?h:g,!1,v);C&&v.preventDefault(),clearInterval(l.current),C&&(l.current=setInterval(function(){y?h*=qS:g*=qS;var x=Math.floor(y?h:g);(!n(y,x,!0)||Math.abs(x)<=.1)&&clearInterval(l.current)},16))}},d=function(){r.current=!1,c()},f=function(v){c(),v.touches.length===1&&!r.current&&(r.current=!0,o.current=Math.ceil(v.touches[0].pageX),a.current=Math.ceil(v.touches[0].pageY),i.current=v.target,i.current.addEventListener("touchmove",u,{passive:!1}),i.current.addEventListener("touchend",d,{passive:!0}))};c=function(){i.current&&(i.current.removeEventListener("touchmove",u),i.current.removeEventListener("touchend",d))},Ot(function(){return e&&t.current.addEventListener("touchstart",f,{passive:!0}),function(){var m;(m=t.current)===null||m===void 0||m.removeEventListener("touchstart",f),c(),clearInterval(l.current)}},[e])}function XS(e){return Math.floor(Math.pow(e,.5))}function Zg(e,t){var n="touches"in e?e.touches[0]:e;return n[t?"pageX":"pageY"]-window[t?"scrollX":"scrollY"]}function Mk(e,t,n){s.useEffect(function(){var r=t.current;if(e&&r){var o=!1,a,i,l=function(){Lt.cancel(a)},c=function m(){l(),a=Lt(function(){n(i),m()})},u=function(v){if(!(v.target.draggable||v.button!==0)){var p=v;p._virtualHandled||(p._virtualHandled=!0,o=!0)}},d=function(){o=!1,l()},f=function(v){if(o){var p=Zg(v,!1),b=r.getBoundingClientRect(),h=b.top,g=b.bottom;if(p<=h){var y=h-p;i=-XS(y),c()}else if(p>=g){var C=p-g;i=XS(C),c()}else l()}};return r.addEventListener("mousedown",u),r.ownerDocument.addEventListener("mouseup",d),r.ownerDocument.addEventListener("mousemove",f),function(){r.removeEventListener("mousedown",u),r.ownerDocument.removeEventListener("mouseup",d),r.ownerDocument.removeEventListener("mousemove",f),l()}}},[e])}var _k=10;function zk(e,t,n,r,o,a,i,l){var c=s.useRef(),u=s.useState(null),d=ee(u,2),f=d[0],m=d[1];return Ot(function(){if(f&&f.times<_k){if(!e.current){m(function(L){return k({},L)});return}a();var v=f.targetAlign,p=f.originAlign,b=f.index,h=f.offset,g=e.current.clientHeight,y=!1,C=v,x=null;if(g){for(var S=v||p,w=0,E=0,O=0,$=Math.min(t.length-1,b),R=0;R<=$;R+=1){var I=o(t[R]);E=w;var N=n.get(I);O=E+(N===void 0?r:N),w=O}for(var T=S==="top"?h:g-h,P=$;P>=0;P-=1){var M=o(t[P]),_=n.get(M);if(_===void 0){y=!0;break}if(T-=_,T<=0)break}switch(S){case"top":x=E-h;break;case"bottom":x=O-g+h;break;default:{var z=e.current.scrollTop,j=z+g;Ej&&(C="bottom")}}x!==null&&i(x),x!==f.lastTop&&(y=!0)}y&&m(k(k({},f),{},{times:f.times+1,targetAlign:C,lastTop:x}))}},[f,e.current]),function(v){if(v==null){l();return}if(Lt.cancel(c.current),typeof v=="number")i(v);else if(v&&We(v)==="object"){var p,b=v.align;"index"in v?p=v.index:p=t.findIndex(function(y){return o(y)===v.key});var h=v.offset,g=h===void 0?0:h;m({times:0,index:p,offset:g,originAlign:b})}}}var YS=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.rtl,o=e.scrollOffset,a=e.scrollRange,i=e.onStartMove,l=e.onStopMove,c=e.onScroll,u=e.horizontal,d=e.spinSize,f=e.containerSize,m=e.style,v=e.thumbStyle,p=e.showScrollBar,b=s.useState(!1),h=ee(b,2),g=h[0],y=h[1],C=s.useState(null),x=ee(C,2),S=x[0],w=x[1],E=s.useState(null),O=ee(E,2),$=O[0],R=O[1],I=!r,N=s.useRef(),T=s.useRef(),P=s.useState(p),M=ee(P,2),_=M[0],z=M[1],j=s.useRef(),L=function(){p===!0||p===!1||(clearTimeout(j.current),z(!0),j.current=setTimeout(function(){z(!1)},3e3))},F=a-f||0,W=f-d||0,H=s.useMemo(function(){if(o===0||F===0)return 0;var te=o/F;return te*W},[o,F,W]),A=function(q){q.stopPropagation(),q.preventDefault()},V=s.useRef({top:H,dragging:g,pageY:S,startTop:$});V.current={top:H,dragging:g,pageY:S,startTop:$};var K=function(q){y(!0),w(Zg(q,u)),R(V.current.top),i(),q.stopPropagation(),q.preventDefault()};s.useEffect(function(){var te=function(Z){Z.preventDefault()},q=N.current,X=T.current;return q.addEventListener("touchstart",te,{passive:!1}),X.addEventListener("touchstart",K,{passive:!1}),function(){q.removeEventListener("touchstart",te),X.removeEventListener("touchstart",K)}},[]);var Y=s.useRef();Y.current=F;var re=s.useRef();re.current=W,s.useEffect(function(){if(g){var te,q=function(Z){var ne=V.current,ie=ne.dragging,fe=ne.pageY,$e=ne.startTop;Lt.cancel(te);var Se=N.current.getBoundingClientRect(),oe=f/(u?Se.width:Se.height);if(ie){var se=(Zg(Z,u)-fe)*oe,ye=$e;!I&&u?ye-=se:ye+=se;var ce=Y.current,we=re.current,Oe=we?ye/we:0,Le=Math.ceil(Oe*ce);Le=Math.max(Le,0),Le=Math.min(Le,ce),te=Lt(function(){c(Le,u)})}},X=function(){y(!1),l()};return window.addEventListener("mousemove",q,{passive:!0}),window.addEventListener("touchmove",q,{passive:!0}),window.addEventListener("mouseup",X,{passive:!0}),window.addEventListener("touchend",X,{passive:!0}),function(){window.removeEventListener("mousemove",q),window.removeEventListener("touchmove",q),window.removeEventListener("mouseup",X),window.removeEventListener("touchend",X),Lt.cancel(te)}}},[g]),s.useEffect(function(){return L(),function(){clearTimeout(j.current)}},[o]),s.useImperativeHandle(t,function(){return{delayHidden:L}});var J="".concat(n,"-scrollbar"),ae={position:"absolute",visibility:_?null:"hidden"},le={position:"absolute",borderRadius:99,background:"var(--rc-virtual-list-scrollbar-bg, rgba(0, 0, 0, 0.5))",cursor:"pointer",userSelect:"none"};return u?(Object.assign(ae,{height:8,left:0,right:0,bottom:0}),Object.assign(le,D({height:"100%",width:d},I?"left":"right",H))):(Object.assign(ae,D({width:8,top:0,bottom:0},I?"right":"left",0)),Object.assign(le,{width:"100%",height:d,top:H})),s.createElement("div",{ref:N,className:G(J,D(D(D({},"".concat(J,"-horizontal"),u),"".concat(J,"-vertical"),!u),"".concat(J,"-visible"),_)),style:k(k({},ae),m),onMouseDown:A,onMouseMove:L},s.createElement("div",{ref:T,className:G("".concat(J,"-thumb"),D({},"".concat(J,"-thumb-moving"),g)),style:k(k({},le),v),onMouseDown:K}))}),jk=20;function QS(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=e/t*e;return isNaN(n)&&(n=0),n=Math.max(n,jk),Math.floor(n)}var Lk=["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","direction","scrollWidth","component","onScroll","onVirtualScroll","onVisibleChange","innerProps","extraRender","styles","showScrollBar"],Dk=[],Bk={overflowY:"auto",overflowAnchor:"none"};function kk(e,t){var n=e.prefixCls,r=n===void 0?"rc-virtual-list":n,o=e.className,a=e.height,i=e.itemHeight,l=e.fullHeight,c=l===void 0?!0:l,u=e.style,d=e.data,f=e.children,m=e.itemKey,v=e.virtual,p=e.direction,b=e.scrollWidth,h=e.component,g=h===void 0?"div":h,y=e.onScroll,C=e.onVirtualScroll,x=e.onVisibleChange,S=e.innerProps,w=e.extraRender,E=e.styles,O=e.showScrollBar,$=O===void 0?"optional":O,R=ut(e,Lk),I=s.useCallback(function(Be){return typeof m=="function"?m(Be):Be==null?void 0:Be[m]},[m]),N=Nk(I),T=ee(N,4),P=T[0],M=T[1],_=T[2],z=T[3],j=!!(v!==!1&&a&&i),L=s.useMemo(function(){return Object.values(_.maps).reduce(function(Be,Ae){return Be+Ae},0)},[_.id,_.maps]),F=j&&d&&(Math.max(i*d.length,L)>a||!!b),W=p==="rtl",H=G(r,D({},"".concat(r,"-rtl"),W),o),A=d||Dk,V=s.useRef(),K=s.useRef(),Y=s.useRef(),re=s.useState(0),J=ee(re,2),ae=J[0],le=J[1],te=s.useState(0),q=ee(te,2),X=q[0],Q=q[1],Z=s.useState(!1),ne=ee(Z,2),ie=ne[0],fe=ne[1],$e=function(){fe(!0)},Se=function(){fe(!1)},oe={getKey:I};function se(Be){le(function(Ae){var De;typeof Be=="function"?De=Be(Ae):De=Be;var ze=xt(De);return V.current.scrollTop=ze,ze})}var ye=s.useRef({start:0,end:A.length}),ce=s.useRef(),we=Ok(A,I),Oe=ee(we,1),Le=Oe[0];ce.current=Le;var je=s.useMemo(function(){if(!j)return{scrollHeight:void 0,start:0,end:A.length-1,offset:void 0};if(!F){var Be;return{scrollHeight:((Be=K.current)===null||Be===void 0?void 0:Be.offsetHeight)||0,start:0,end:A.length-1,offset:void 0}}for(var Ae=0,De,ze,rt,bt=A.length,kt=0;kt=ae&&De===void 0&&(De=kt,ze=Ae),yt>ae+a&&rt===void 0&&(rt=kt),Ae=yt}return De===void 0&&(De=0,ze=0,rt=Math.ceil(a/i)),rt===void 0&&(rt=A.length-1),rt=Math.min(rt+1,A.length-1),{scrollHeight:Ae,start:De,end:rt,offset:ze}},[F,j,ae,A,z,a]),xe=je.scrollHeight,Pe=je.start,Ce=je.end,ve=je.offset;ye.current.start=Pe,ye.current.end=Ce,s.useLayoutEffect(function(){var Be=_.getRecord();if(Be.size===1){var Ae=Array.from(Be.keys())[0],De=Be.get(Ae),ze=A[Pe];if(ze&&De===void 0){var rt=I(ze);if(rt===Ae){var bt=_.get(Ae),kt=bt-i;se(function(Ut){return Ut+kt})}}}_.resetRecord()},[xe]);var Ee=s.useState({width:0,height:a}),de=ee(Ee,2),ge=de[0],me=de[1],ue=function(Ae){me({width:Ae.offsetWidth,height:Ae.offsetHeight})},Te=s.useRef(),Qe=s.useRef(),pt=s.useMemo(function(){return QS(ge.width,b)},[ge.width,b]),gt=s.useMemo(function(){return QS(ge.height,xe)},[ge.height,xe]),ft=xe-a,Bt=s.useRef(ft);Bt.current=ft;function xt(Be){var Ae=Be;return Number.isNaN(Bt.current)||(Ae=Math.min(Ae,Bt.current)),Ae=Math.max(Ae,0),Ae}var st=ae<=0,at=ae>=ft,Ke=X<=0,Fe=X>=b,Re=qO(st,at,Ke,Fe),qe=function(){return{x:W?-X:X,y:ae}},Je=s.useRef(qe()),Ie=Vt(function(Be){if(C){var Ae=k(k({},qe()),Be);(Je.current.x!==Ae.x||Je.current.y!==Ae.y)&&(C(Ae),Je.current=Ae)}});function Ne(Be,Ae){var De=Be;Ae?(Yr.flushSync(function(){Q(De)}),Ie()):se(De)}function Xe(Be){var Ae=Be.currentTarget.scrollTop;Ae!==ae&&se(Ae),y==null||y(Be),Ie()}var Ge=function(Ae){var De=Ae,ze=b?b-ge.width:0;return De=Math.max(De,0),De=Math.min(De,ze),De},He=Vt(function(Be,Ae){Ae?(Yr.flushSync(function(){Q(function(De){var ze=De+(W?-Be:Be);return Ge(ze)})}),Ie()):se(function(De){var ze=De+Be;return ze})}),et=Rk(j,st,at,Ke,Fe,!!b,He),Ue=ee(et,2),Ve=Ue[0],tt=Ue[1];Tk(j,V,function(Be,Ae,De,ze){var rt=ze;return Re(Be,Ae,De)?!1:!rt||!rt._virtualHandled?(rt&&(rt._virtualHandled=!0),Ve({preventDefault:function(){},deltaX:Be?Ae:0,deltaY:Be?0:Ae}),!0):!1}),Mk(F,V,function(Be){se(function(Ae){return Ae+Be})}),Ot(function(){function Be(De){var ze=st&&De.detail<0,rt=at&&De.detail>0;j&&!ze&&!rt&&De.preventDefault()}var Ae=V.current;return Ae.addEventListener("wheel",Ve,{passive:!1}),Ae.addEventListener("DOMMouseScroll",tt,{passive:!0}),Ae.addEventListener("MozMousePixelScroll",Be,{passive:!1}),function(){Ae.removeEventListener("wheel",Ve),Ae.removeEventListener("DOMMouseScroll",tt),Ae.removeEventListener("MozMousePixelScroll",Be)}},[j,st,at]),Ot(function(){if(b){var Be=Ge(X);Q(Be),Ie({x:Be})}},[ge.width,b]);var dt=function(){var Ae,De;(Ae=Te.current)===null||Ae===void 0||Ae.delayHidden(),(De=Qe.current)===null||De===void 0||De.delayHidden()},St=zk(V,A,_,i,I,function(){return M(!0)},se,dt);s.useImperativeHandle(t,function(){return{nativeElement:Y.current,getScrollInfo:qe,scrollTo:function(Ae){function De(ze){return ze&&We(ze)==="object"&&("left"in ze||"top"in ze)}De(Ae)?(Ae.left!==void 0&&Q(Ge(Ae.left)),St(Ae.top)):St(Ae)}}}),Ot(function(){if(x){var Be=A.slice(Pe,Ce+1);x(Be,A)}},[Pe,Ce,A]);var Et=Pk(A,I,_,i),Pt=w==null?void 0:w({start:Pe,end:Ce,virtual:F,offsetX:X,offsetY:ve,rtl:W,getSize:Et}),wt=$k(A,Pe,Ce,b,X,P,f,oe),Tt=null;a&&(Tt=k(D({},c?"height":"maxHeight",a),Bk),j&&(Tt.overflowY="hidden",b&&(Tt.overflowX="hidden"),ie&&(Tt.pointerEvents="none")));var It={};return W&&(It.dir="rtl"),s.createElement("div",pe({ref:Y,style:k(k({},u),{},{position:"relative"}),className:H},It,R),s.createElement(cr,{onResize:ue},s.createElement(g,{className:"".concat(r,"-holder"),style:Tt,ref:V,onScroll:Xe,onMouseEnter:dt},s.createElement(GO,{prefixCls:r,height:xe,offsetX:X,offsetY:ve,scrollWidth:b,onInnerResize:M,ref:K,innerProps:S,rtl:W,extra:Pt},wt))),F&&xe>a&&s.createElement(YS,{ref:Te,prefixCls:r,scrollOffset:ae,scrollRange:xe,rtl:W,onScroll:Ne,onStartMove:$e,onStopMove:Se,spinSize:gt,containerSize:ge.height,style:E==null?void 0:E.verticalScrollBar,thumbStyle:E==null?void 0:E.verticalScrollBarThumb,showScrollBar:$}),F&&b>ge.width&&s.createElement(YS,{ref:Qe,prefixCls:r,scrollOffset:X,scrollRange:b,rtl:W,onScroll:Ne,onStartMove:$e,onStopMove:Se,spinSize:pt,containerSize:ge.width,horizontal:!0,style:E==null?void 0:E.horizontalScrollBar,thumbStyle:E==null?void 0:E.horizontalScrollBarThumb,showScrollBar:$}))}var nm=s.forwardRef(kk);nm.displayName="List";function Ak(){return/(mac\sos|macintosh)/i.test(navigator.appVersion)}var Fk=["disabled","title","children","style","className"];function JS(e){return typeof e=="string"||typeof e=="number"}var Hk=function(t,n){var r=OB(),o=r.prefixCls,a=r.id,i=r.open,l=r.multiple,c=r.mode,u=r.searchValue,d=r.toggleOpen,f=r.notFoundContent,m=r.onPopupScroll,v=s.useContext(ey),p=v.maxCount,b=v.flattenOptions,h=v.onActiveValue,g=v.defaultActiveFirstOption,y=v.onSelect,C=v.menuItemSelectedIcon,x=v.rawValues,S=v.fieldNames,w=v.virtual,E=v.direction,O=v.listHeight,$=v.listItemHeight,R=v.optionRender,I="".concat(o,"-item"),N=bi(function(){return b},[i,b],function(te,q){return q[0]&&te[1]!==q[1]}),T=s.useRef(null),P=s.useMemo(function(){return l&&Yg(p)&&(x==null?void 0:x.size)>=p},[l,p,x==null?void 0:x.size]),M=function(q){q.preventDefault()},_=function(q){var X;(X=T.current)===null||X===void 0||X.scrollTo(typeof q=="number"?{index:q}:q)},z=s.useCallback(function(te){return c==="combobox"?!1:x.has(te)},[c,he(x).toString(),x.size]),j=function(q){for(var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,Q=N.length,Z=0;Z1&&arguments[1]!==void 0?arguments[1]:!1;H(q);var Q={source:X?"keyboard":"mouse"},Z=N[q];if(!Z){h(null,-1,Q);return}h(Z.value,q,Q)};s.useEffect(function(){A(g!==!1?j(0):-1)},[N.length,u]);var V=s.useCallback(function(te){return c==="combobox"?String(te).toLowerCase()===u.toLowerCase():x.has(te)},[c,u,he(x).toString(),x.size]);s.useEffect(function(){var te=setTimeout(function(){if(!l&&i&&x.size===1){var X=Array.from(x)[0],Q=N.findIndex(function(Z){var ne=Z.data;return u?String(ne.value).startsWith(u):ne.value===X});Q!==-1&&(A(Q),_(Q))}});if(i){var q;(q=T.current)===null||q===void 0||q.scrollTo(void 0)}return function(){return clearTimeout(te)}},[i,u]);var K=function(q){q!==void 0&&y(q,{selected:!x.has(q)}),l||d(!1)};if(s.useImperativeHandle(n,function(){return{onKeyDown:function(q){var X=q.which,Q=q.ctrlKey;switch(X){case ke.N:case ke.P:case ke.UP:case ke.DOWN:{var Z=0;if(X===ke.UP?Z=-1:X===ke.DOWN?Z=1:Ak()&&Q&&(X===ke.N?Z=1:X===ke.P&&(Z=-1)),Z!==0){var ne=j(W+Z,Z);_(ne),A(ne,!0)}break}case ke.TAB:case ke.ENTER:{var ie,fe=N[W];fe&&!(fe!=null&&(ie=fe.data)!==null&&ie!==void 0&&ie.disabled)&&!P?K(fe.value):K(void 0),i&&q.preventDefault();break}case ke.ESC:d(!1),i&&q.stopPropagation()}},onKeyUp:function(){},scrollTo:function(q){_(q)}}}),N.length===0)return s.createElement("div",{role:"listbox",id:"".concat(a,"_list"),className:"".concat(I,"-empty"),onMouseDown:M},f);var Y=Object.keys(S).map(function(te){return S[te]}),re=function(q){return q.label};function J(te,q){var X=te.group;return{role:X?"presentation":"option",id:"".concat(a,"_list_").concat(q)}}var ae=function(q){var X=N[q];if(!X)return null;var Q=X.data||{},Z=Q.value,ne=X.group,ie=tr(Q,!0),fe=re(X);return X?s.createElement("div",pe({"aria-label":typeof fe=="string"&&!ne?fe:null},ie,{key:q},J(X,q),{"aria-selected":V(Z)}),Z):null},le={role:"listbox",id:"".concat(a,"_list")};return s.createElement(s.Fragment,null,w&&s.createElement("div",pe({},le,{style:{height:0,width:0,overflow:"hidden"}}),ae(W-1),ae(W),ae(W+1)),s.createElement(nm,{itemKey:"key",ref:T,data:N,height:O,itemHeight:$,fullHeight:!1,onMouseDown:M,onScroll:m,virtual:w,direction:E,innerProps:w?null:le},function(te,q){var X=te.group,Q=te.groupOption,Z=te.data,ne=te.label,ie=te.value,fe=Z.key;if(X){var $e,Se=($e=Z.title)!==null&&$e!==void 0?$e:JS(ne)?ne.toString():void 0;return s.createElement("div",{className:G(I,"".concat(I,"-group"),Z.className),title:Se},ne!==void 0?ne:fe)}var oe=Z.disabled,se=Z.title;Z.children;var ye=Z.style,ce=Z.className,we=ut(Z,Fk),Oe=Zt(we,Y),Le=z(ie),je=oe||!Le&&P,xe="".concat(I,"-option"),Pe=G(I,xe,ce,D(D(D(D({},"".concat(xe,"-grouped"),Q),"".concat(xe,"-active"),W===q&&!je),"".concat(xe,"-disabled"),je),"".concat(xe,"-selected"),Le)),Ce=re(te),ve=!C||typeof C=="function"||Le,Ee=typeof Ce=="number"?Ce:Ce||ie,de=JS(Ee)?Ee.toString():void 0;return se!==void 0&&(de=se),s.createElement("div",pe({},tr(Oe),w?{}:J(te,q),{"aria-selected":V(ie),className:Pe,title:de,onMouseMove:function(){W===q||je||A(q)},onClick:function(){je||K(ie)},style:ye}),s.createElement("div",{className:"".concat(xe,"-content")},typeof R=="function"?R(te,{index:q}):Ee),s.isValidElement(C)||Le,ve&&s.createElement(em,{className:"".concat(I,"-option-state"),customizeIcon:C,customizeIconProps:{value:ie,disabled:je,isSelected:Le}},Le?"✓":null))}))},Vk=s.forwardRef(Hk);const Wk=function(e,t){var n=s.useRef({values:new Map,options:new Map}),r=s.useMemo(function(){var a=n.current,i=a.values,l=a.options,c=e.map(function(f){if(f.label===void 0){var m;return k(k({},f),{},{label:(m=i.get(f.value))===null||m===void 0?void 0:m.label})}return f}),u=new Map,d=new Map;return c.forEach(function(f){u.set(f.value,f),d.set(f.value,t.get(f.value)||l.get(f.value))}),n.current.values=u,n.current.options=d,c},[e,t]),o=s.useCallback(function(a){return t.get(a)||n.current.options.get(a)},[t]);return[r,o]};function Iv(e,t){return WO(e).join("").toUpperCase().includes(t)}const Kk=function(e,t,n,r,o){return s.useMemo(function(){if(!n||r===!1)return e;var a=t.options,i=t.label,l=t.value,c=[],u=typeof r=="function",d=n.toUpperCase(),f=u?r:function(v,p){return o?Iv(p[o],d):p[a]?Iv(p[i!=="children"?i:"label"],d):Iv(p[l],d)},m=u?function(v){return Qg(v)}:function(v){return v};return e.forEach(function(v){if(v[a]){var p=f(n,m(v));if(p)c.push(v);else{var b=v[a].filter(function(h){return f(n,m(h))});b.length&&c.push(k(k({},v),{},D({},a,b)))}return}f(n,m(v))&&c.push(v)}),c},[e,r,o,n,t])};var ZS=0,Uk=Bn();function Gk(){var e;return Uk?(e=ZS,ZS+=1):e="TEST_OR_SSR",e}function qk(e){var t=s.useState(),n=ee(t,2),r=n[0],o=n[1];return s.useEffect(function(){o("rc_select_".concat(Gk()))},[]),e||r}var Xk=["children","value"],Yk=["children"];function Qk(e){var t=e,n=t.key,r=t.props,o=r.children,a=r.value,i=ut(r,Xk);return k({key:n,value:a!==void 0?a:n,children:o},i)}function XO(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return ur(e).map(function(n,r){if(!s.isValidElement(n)||!n.type)return null;var o=n,a=o.type.isSelectOptGroup,i=o.key,l=o.props,c=l.children,u=ut(l,Yk);return t||!a?Qk(n):k(k({key:"__RC_SELECT_GRP__".concat(i===null?r:i,"__"),label:i},u),{},{options:XO(c)})}).filter(function(n){return n})}var Jk=function(t,n,r,o,a){return s.useMemo(function(){var i=t,l=!t;l&&(i=XO(n));var c=new Map,u=new Map,d=function(v,p,b){b&&typeof b=="string"&&v.set(p[b],p)},f=function m(v){for(var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,b=0;b0?Ie(Ge.options):Ge.options}):Ge})},Ee=s.useMemo(function(){return y?ve(Ce):Ce},[Ce,y,le]),de=s.useMemo(function(){return hk(Ee,{fieldNames:re,childrenAsData:K})},[Ee,re,K]),ge=function(Ne){var Xe=ne(Ne);if(Se(Xe),F&&(Xe.length!==ce.length||Xe.some(function(et,Ue){var Ve;return((Ve=ce[Ue])===null||Ve===void 0?void 0:Ve.value)!==(et==null?void 0:et.value)}))){var Ge=L?Xe:Xe.map(function(et){return et.value}),He=Xe.map(function(et){return Qg(we(et.value))});F(V?Ge:Ge[0],V?He:He[0])}},me=s.useState(null),ue=ee(me,2),Te=ue[0],Qe=ue[1],pt=s.useState(0),gt=ee(pt,2),ft=gt[0],Bt=gt[1],xt=O!==void 0?O:r!=="combobox",st=s.useCallback(function(Ie,Ne){var Xe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Ge=Xe.source,He=Ge===void 0?"keyboard":Ge;Bt(Ne),i&&r==="combobox"&&Ie!==null&&He==="keyboard"&&Qe(String(Ie))},[i,r]),at=function(Ne,Xe,Ge){var He=function(){var Tt,It=we(Ne);return[L?{label:It==null?void 0:It[re.label],value:Ne,key:(Tt=It==null?void 0:It.key)!==null&&Tt!==void 0?Tt:Ne}:Ne,Qg(It)]};if(Xe&&v){var et=He(),Ue=ee(et,2),Ve=Ue[0],tt=Ue[1];v(Ve,tt)}else if(!Xe&&p&&Ge!=="clear"){var dt=He(),St=ee(dt,2),Et=St[0],Pt=St[1];p(Et,Pt)}},Ke=ex(function(Ie,Ne){var Xe,Ge=V?Ne.selected:!0;Ge?Xe=V?[].concat(he(ce),[Ie]):[Ie]:Xe=ce.filter(function(He){return He.value!==Ie}),ge(Xe),at(Ie,Ge),r==="combobox"?Qe(""):(!Jg||m)&&(te(""),Qe(""))}),Fe=function(Ne,Xe){ge(Ne);var Ge=Xe.type,He=Xe.values;(Ge==="remove"||Ge==="clear")&&He.forEach(function(et){at(et.value,!1,Ge)})},Re=function(Ne,Xe){if(te(Ne),Qe(null),Xe.source==="submit"){var Ge=(Ne||"").trim();if(Ge){var He=Array.from(new Set([].concat(he(Le),[Ge])));ge(He),at(Ge,!0),te("")}return}Xe.source!=="blur"&&(r==="combobox"&&ge(Ne),d==null||d(Ne))},qe=function(Ne){var Xe=Ne;r!=="tags"&&(Xe=Ne.map(function(He){var et=Q.get(He);return et==null?void 0:et.value}).filter(function(He){return He!==void 0}));var Ge=Array.from(new Set([].concat(he(Le),he(Xe))));ge(Ge),Ge.forEach(function(He){at(He,!0)})},Je=s.useMemo(function(){var Ie=R!==!1&&h!==!1;return k(k({},q),{},{flattenOptions:de,onActiveValue:st,defaultActiveFirstOption:xt,onSelect:Ke,menuItemSelectedIcon:$,rawValues:Le,fieldNames:re,virtual:Ie,direction:I,listHeight:T,listItemHeight:M,childrenAsData:K,maxCount:W,optionRender:w})},[W,q,de,st,xt,Ke,$,Le,re,R,h,I,T,M,K,w]);return s.createElement(ey.Provider,{value:Je},s.createElement(xk,pe({},H,{id:A,prefixCls:a,ref:t,omitDomProps:e8,mode:r,displayValues:Oe,onDisplayValuesChange:Fe,direction:I,searchValue:le,onSearch:Re,autoClearSearchValue:m,onSearchSplit:qe,dropdownMatchSelectWidth:h,OptionList:Vk,emptyOptions:!de.length,activeValue:Te,activeDescendantId:"".concat(A,"_list_").concat(ft)})))}),ry=n8;ry.Option=ny;ry.OptGroup=ty;function Wd(e,t,n){return G({[`${e}-status-success`]:t==="success",[`${e}-status-warning`]:t==="warning",[`${e}-status-error`]:t==="error",[`${e}-status-validating`]:t==="validating",[`${e}-has-feedback`]:n})}const rm=(e,t)=>t||e,r8=()=>{const[,e]=Kn(),[t]=$o("Empty"),r=new zt(e.colorBgBase).toHsl().l<.5?{opacity:.65}:{};return s.createElement("svg",{style:r,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},s.createElement("title",null,(t==null?void 0:t.description)||"Empty"),s.createElement("g",{fill:"none",fillRule:"evenodd"},s.createElement("g",{transform:"translate(24 31.67)"},s.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),s.createElement("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"}),s.createElement("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),s.createElement("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"}),s.createElement("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"})),s.createElement("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"}),s.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},s.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),s.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},o8=()=>{const[,e]=Kn(),[t]=$o("Empty"),{colorFill:n,colorFillTertiary:r,colorFillQuaternary:o,colorBgContainer:a}=e,{borderColor:i,shadowColor:l,contentColor:c}=s.useMemo(()=>({borderColor:new zt(n).onBackground(a).toHexString(),shadowColor:new zt(r).onBackground(a).toHexString(),contentColor:new zt(o).onBackground(a).toHexString()}),[n,r,o,a]);return s.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},s.createElement("title",null,(t==null?void 0:t.description)||"Empty"),s.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},s.createElement("ellipse",{fill:l,cx:"32",cy:"33",rx:"32",ry:"7"}),s.createElement("g",{fillRule:"nonzero",stroke:i},s.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),s.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:c}))))},a8=e=>{const{componentCls:t,margin:n,marginXS:r,marginXL:o,fontSize:a,lineHeight:i}=e;return{[t]:{marginInline:r,fontSize:a,lineHeight:i,textAlign:"center",[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:r,opacity:e.opacityImage,img:{height:"100%"},svg:{maxWidth:"100%",height:"100%",margin:"auto"}},[`${t}-description`]:{color:e.colorTextDescription},[`${t}-footer`]:{marginTop:n},"&-normal":{marginBlock:o,color:e.colorTextDescription,[`${t}-description`]:{color:e.colorTextDescription},[`${t}-image`]:{height:e.emptyImgHeightMD}},"&-small":{marginBlock:r,color:e.colorTextDescription,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}},i8=Wt("Empty",e=>{const{componentCls:t,controlHeightLG:n,calc:r}=e,o=Rt(e,{emptyImgCls:`${t}-img`,emptyImgHeight:r(n).mul(2.5).equal(),emptyImgHeightMD:n,emptyImgHeightSM:r(n).mul(.875).equal()});return[a8(o)]});var l8=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{className:t,rootClassName:n,prefixCls:r,image:o=YO,description:a,children:i,imageStyle:l,style:c,classNames:u,styles:d}=e,f=l8(e,["className","rootClassName","prefixCls","image","description","children","imageStyle","style","classNames","styles"]),{getPrefixCls:m,direction:v,className:p,style:b,classNames:h,styles:g}=Rr("empty"),y=m("empty",r),[C,x,S]=i8(y),[w]=$o("Empty"),E=typeof a<"u"?a:w==null?void 0:w.description,O=typeof E=="string"?E:"empty";let $=null;return typeof o=="string"?$=s.createElement("img",{alt:O,src:o}):$=o,C(s.createElement("div",Object.assign({className:G(x,S,y,p,{[`${y}-normal`]:o===QO,[`${y}-rtl`]:v==="rtl"},t,n,h.root,u==null?void 0:u.root),style:Object.assign(Object.assign(Object.assign(Object.assign({},g.root),b),d==null?void 0:d.root),c)},f),s.createElement("div",{className:G(`${y}-image`,h.image,u==null?void 0:u.image),style:Object.assign(Object.assign(Object.assign({},l),g.image),d==null?void 0:d.image)},$),E&&s.createElement("div",{className:G(`${y}-description`,h.description,u==null?void 0:u.description),style:Object.assign(Object.assign({},g.description),d==null?void 0:d.description)},E),i&&s.createElement("div",{className:G(`${y}-footer`,h.footer,u==null?void 0:u.footer),style:Object.assign(Object.assign({},g.footer),d==null?void 0:d.footer)},i)))};Ko.PRESENTED_IMAGE_DEFAULT=YO;Ko.PRESENTED_IMAGE_SIMPLE=QO;const JO=e=>{const{componentName:t}=e,{getPrefixCls:n}=s.useContext(lt),r=n("empty");switch(t){case"Table":case"List":return B.createElement(Ko,{image:Ko.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return B.createElement(Ko,{image:Ko.PRESENTED_IMAGE_SIMPLE,className:`${r}-small`});case"Table.filter":return null;default:return B.createElement(Ko,null)}},om=(e,t,n=void 0)=>{var r,o;const{variant:a,[e]:i}=s.useContext(lt),l=s.useContext(R6),c=i==null?void 0:i.variant;let u;typeof t<"u"?u=t:n===!1?u="borderless":u=(o=(r=l??c)!==null&&r!==void 0?r:a)!==null&&o!==void 0?o:"outlined";const d=bz.includes(u);return[u,d]},s8=e=>{const n={overflow:{adjustX:!0,adjustY:!0,shiftY:!0},htmlRegion:e==="scroll"?"scroll":"visible",dynamicInset:!0};return{bottomLeft:Object.assign(Object.assign({},n),{points:["tl","bl"],offset:[0,4]}),bottomRight:Object.assign(Object.assign({},n),{points:["tr","br"],offset:[0,4]}),topLeft:Object.assign(Object.assign({},n),{points:["bl","tl"],offset:[0,-4]}),topRight:Object.assign(Object.assign({},n),{points:["br","tr"],offset:[0,-4]})}};function c8(e,t){return e||s8(t)}const tx=e=>{const{optionHeight:t,optionFontSize:n,optionLineHeight:r,optionPadding:o}=e;return{position:"relative",display:"block",minHeight:t,padding:o,color:e.colorText,fontWeight:"normal",fontSize:n,lineHeight:r,boxSizing:"border-box"}},u8=e=>{const{antCls:t,componentCls:n}=e,r=`${n}-item`,o=`&${t}-slide-up-enter${t}-slide-up-enter-active`,a=`&${t}-slide-up-appear${t}-slide-up-appear-active`,i=`&${t}-slide-up-leave${t}-slide-up-leave-active`,l=`${n}-dropdown-placement-`,c=`${r}-option-selected`;return[{[`${n}-dropdown`]:Object.assign(Object.assign({},Jt(e)),{position:"absolute",top:-9999,zIndex:e.zIndexPopup,boxSizing:"border-box",padding:e.paddingXXS,overflow:"hidden",fontSize:e.fontSize,fontVariant:"initial",backgroundColor:e.colorBgElevated,borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary,[` + ${o}${l}bottomLeft, + ${a}${l}bottomLeft + `]:{animationName:W0},[` + ${o}${l}topLeft, + ${a}${l}topLeft, + ${o}${l}topRight, + ${a}${l}topRight + `]:{animationName:U0},[`${i}${l}bottomLeft`]:{animationName:K0},[` + ${i}${l}topLeft, + ${i}${l}topRight + `]:{animationName:G0},"&-hidden":{display:"none"},[r]:Object.assign(Object.assign({},tx(e)),{cursor:"pointer",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},Bo),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${r}-option-disabled)`]:{backgroundColor:e.optionActiveBg},[`&-selected:not(${r}-option-disabled)`]:{color:e.optionSelectedColor,fontWeight:e.optionSelectedFontWeight,backgroundColor:e.optionSelectedBg,[`${r}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${r}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:e.calc(e.controlPaddingHorizontal).mul(2).equal()}},"&-empty":Object.assign(Object.assign({},tx(e)),{color:e.colorTextDisabled})}),[`${c}:has(+ ${c})`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${c}`]:{borderStartStartRadius:0,borderStartEndRadius:0}},"&-rtl":{direction:"rtl"}})},ja(e,"slide-up"),ja(e,"slide-down"),kd(e,"move-up"),kd(e,"move-down")]},d8=e=>{const{multipleSelectItemHeight:t,paddingXXS:n,lineWidth:r,INTERNAL_FIXED_ITEM_MARGIN:o}=e,a=e.max(e.calc(n).sub(r).equal(),0),i=e.max(e.calc(a).sub(o).equal(),0);return{basePadding:a,containerPadding:i,itemHeight:U(t),itemLineHeight:U(e.calc(t).sub(e.calc(e.lineWidth).mul(2)).equal())}},f8=e=>{const{multipleSelectItemHeight:t,selectHeight:n,lineWidth:r}=e;return e.calc(n).sub(t).div(2).sub(r).equal()},m8=e=>{const{componentCls:t,iconCls:n,borderRadiusSM:r,motionDurationSlow:o,paddingXS:a,multipleItemColorDisabled:i,multipleItemBorderColorDisabled:l,colorIcon:c,colorIconHover:u,INTERNAL_FIXED_ITEM_MARGIN:d}=e;return{[`${t}-selection-overflow`]:{position:"relative",display:"flex",flex:"auto",flexWrap:"wrap",maxWidth:"100%","&-item":{flex:"none",alignSelf:"center",maxWidth:"calc(100% - 4px)",display:"inline-flex"},[`${t}-selection-item`]:{display:"flex",alignSelf:"center",flex:"none",boxSizing:"border-box",maxWidth:"100%",marginBlock:d,borderRadius:r,cursor:"default",transition:`font-size ${o}, line-height ${o}, height ${o}`,marginInlineEnd:e.calc(d).mul(2).equal(),paddingInlineStart:a,paddingInlineEnd:e.calc(a).div(2).equal(),[`${t}-disabled&`]:{color:i,borderColor:l,cursor:"not-allowed"},"&-content":{display:"inline-block",marginInlineEnd:e.calc(a).div(2).equal(),overflow:"hidden",whiteSpace:"pre",textOverflow:"ellipsis"},"&-remove":Object.assign(Object.assign({},Nc()),{display:"inline-flex",alignItems:"center",color:c,fontWeight:"bold",fontSize:10,lineHeight:"inherit",cursor:"pointer",[`> ${n}`]:{verticalAlign:"-0.2em"},"&:hover":{color:u}})}}}},v8=(e,t)=>{const{componentCls:n,INTERNAL_FIXED_ITEM_MARGIN:r}=e,o=`${n}-selection-overflow`,a=e.multipleSelectItemHeight,i=f8(e),l=t?`${n}-${t}`:"",c=d8(e);return{[`${n}-multiple${l}`]:Object.assign(Object.assign({},m8(e)),{[`${n}-selector`]:{display:"flex",alignItems:"center",width:"100%",height:"100%",paddingInline:c.basePadding,paddingBlock:c.containerPadding,borderRadius:e.borderRadius,[`${n}-disabled&`]:{background:e.multipleSelectorBgDisabled,cursor:"not-allowed"},"&:after":{display:"inline-block",width:0,margin:`${U(r)} 0`,lineHeight:U(a),visibility:"hidden",content:'"\\a0"'}},[`${n}-selection-item`]:{height:c.itemHeight,lineHeight:U(c.itemLineHeight)},[`${n}-selection-wrap`]:{alignSelf:"flex-start","&:after":{lineHeight:U(a),marginBlock:r}},[`${n}-prefix`]:{marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(c.basePadding).equal()},[`${o}-item + ${o}-item, + ${n}-prefix + ${n}-selection-wrap + `]:{[`${n}-selection-search`]:{marginInlineStart:0},[`${n}-selection-placeholder`]:{insetInlineStart:0}},[`${o}-item-suffix`]:{minHeight:c.itemHeight,marginBlock:r},[`${n}-selection-search`]:{display:"inline-flex",position:"relative",maxWidth:"100%",marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(i).equal(),"\n &-input,\n &-mirror\n ":{height:a,fontFamily:e.fontFamily,lineHeight:U(a),transition:`all ${e.motionDurationSlow}`},"&-input":{width:"100%",minWidth:4.1},"&-mirror":{position:"absolute",top:0,insetInlineStart:0,insetInlineEnd:"auto",zIndex:999,whiteSpace:"pre",visibility:"hidden"}},[`${n}-selection-placeholder`]:{position:"absolute",top:"50%",insetInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(c.basePadding).equal(),insetInlineEnd:e.inputPaddingHorizontalBase,transform:"translateY(-50%)",transition:`all ${e.motionDurationSlow}`}})}};function Nv(e,t){const{componentCls:n}=e,r=t?`${n}-${t}`:"",o={[`${n}-multiple${r}`]:{fontSize:e.fontSize,[`${n}-selector`]:{[`${n}-show-search&`]:{cursor:"text"}},[` + &${n}-show-arrow ${n}-selector, + &${n}-allow-clear ${n}-selector + `]:{paddingInlineEnd:e.calc(e.fontSizeIcon).add(e.controlPaddingHorizontal).equal()}}};return[v8(e,t),o]}const p8=e=>{const{componentCls:t}=e,n=Rt(e,{selectHeight:e.controlHeightSM,multipleSelectItemHeight:e.multipleItemHeightSM,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS}),r=Rt(e,{fontSize:e.fontSizeLG,selectHeight:e.controlHeightLG,multipleSelectItemHeight:e.multipleItemHeightLG,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius});return[Nv(e),Nv(n,"sm"),{[`${t}-multiple${t}-sm`]:{[`${t}-selection-placeholder`]:{insetInline:e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal()},[`${t}-selection-search`]:{marginInlineStart:2}}},Nv(r,"lg")]};function Tv(e,t){const{componentCls:n,inputPaddingHorizontalBase:r,borderRadius:o}=e,a=e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),i=t?`${n}-${t}`:"";return{[`${n}-single${i}`]:{fontSize:e.fontSize,height:e.controlHeight,[`${n}-selector`]:Object.assign(Object.assign({},Jt(e,!0)),{display:"flex",borderRadius:o,flex:"1 1 auto",[`${n}-selection-wrap:after`]:{lineHeight:U(a)},[`${n}-selection-search`]:{position:"absolute",inset:0,width:"100%","&-input":{width:"100%",WebkitAppearance:"textfield"}},[` + ${n}-selection-item, + ${n}-selection-placeholder + `]:{display:"block",padding:0,lineHeight:U(a),transition:`all ${e.motionDurationSlow}, visibility 0s`,alignSelf:"center"},[`${n}-selection-placeholder`]:{transition:"none",pointerEvents:"none"},[["&:after",`${n}-selection-item:empty:after`,`${n}-selection-placeholder:empty:after`].join(",")]:{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'}}),[` + &${n}-show-arrow ${n}-selection-item, + &${n}-show-arrow ${n}-selection-search, + &${n}-show-arrow ${n}-selection-placeholder + `]:{paddingInlineEnd:e.showArrowPaddingInlineEnd},[`&${n}-open ${n}-selection-item`]:{color:e.colorTextPlaceholder},[`&:not(${n}-customize-input)`]:{[`${n}-selector`]:{width:"100%",height:"100%",alignItems:"center",padding:`0 ${U(r)}`,[`${n}-selection-search-input`]:{height:a,fontSize:e.fontSize},"&:after":{lineHeight:U(a)}}},[`&${n}-customize-input`]:{[`${n}-selector`]:{"&:after":{display:"none"},[`${n}-selection-search`]:{position:"static",width:"100%"},[`${n}-selection-placeholder`]:{position:"absolute",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${U(r)}`,"&:after":{display:"none"}}}}}}}function g8(e){const{componentCls:t}=e,n=e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal();return[Tv(e),Tv(Rt(e,{controlHeight:e.controlHeightSM,borderRadius:e.borderRadiusSM}),"sm"),{[`${t}-single${t}-sm`]:{[`&:not(${t}-customize-input)`]:{[`${t}-selector`]:{padding:`0 ${U(n)}`},[`&${t}-show-arrow ${t}-selection-search`]:{insetInlineEnd:e.calc(n).add(e.calc(e.fontSize).mul(1.5)).equal()},[` + &${t}-show-arrow ${t}-selection-item, + &${t}-show-arrow ${t}-selection-placeholder + `]:{paddingInlineEnd:e.calc(e.fontSize).mul(1.5).equal()}}}},Tv(Rt(e,{controlHeight:e.singleItemHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),"lg")]}const h8=e=>{const{fontSize:t,lineHeight:n,lineWidth:r,controlHeight:o,controlHeightSM:a,controlHeightLG:i,paddingXXS:l,controlPaddingHorizontal:c,zIndexPopupBase:u,colorText:d,fontWeightStrong:f,controlItemBgActive:m,controlItemBgHover:v,colorBgContainer:p,colorFillSecondary:b,colorBgContainerDisabled:h,colorTextDisabled:g,colorPrimaryHover:y,colorPrimary:C,controlOutline:x}=e,S=l*2,w=r*2,E=Math.min(o-S,o-w),O=Math.min(a-S,a-w),$=Math.min(i-S,i-w);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(l/2),zIndexPopup:u+50,optionSelectedColor:d,optionSelectedFontWeight:f,optionSelectedBg:m,optionActiveBg:v,optionPadding:`${(o-t*n)/2}px ${c}px`,optionFontSize:t,optionLineHeight:n,optionHeight:o,selectorBg:p,clearBg:p,singleItemHeightLG:i,multipleItemBg:b,multipleItemBorderColor:"transparent",multipleItemHeight:E,multipleItemHeightSM:O,multipleItemHeightLG:$,multipleSelectorBgDisabled:h,multipleItemColorDisabled:g,multipleItemBorderColorDisabled:"transparent",showArrowPaddingInlineEnd:Math.ceil(e.fontSize*1.25),hoverBorderColor:y,activeBorderColor:C,activeOutlineColor:x,selectAffixPadding:l}},ZO=(e,t)=>{const{componentCls:n,antCls:r,controlOutlineWidth:o}=e;return{[`&:not(${n}-customize-input) ${n}-selector`]:{border:`${U(e.lineWidth)} ${e.lineType} ${t.borderColor}`,background:e.selectorBg},[`&:not(${n}-disabled):not(${n}-customize-input):not(${r}-pagination-size-changer)`]:{[`&:hover ${n}-selector`]:{borderColor:t.hoverBorderHover},[`${n}-focused& ${n}-selector`]:{borderColor:t.activeBorderColor,boxShadow:`0 0 0 ${U(o)} ${t.activeOutlineColor}`,outline:0},[`${n}-prefix`]:{color:t.color}}}},nx=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},ZO(e,t))}),y8=e=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign({},ZO(e,{borderColor:e.colorBorder,hoverBorderHover:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeOutlineColor:e.activeOutlineColor,color:e.colorText})),nx(e,{status:"error",borderColor:e.colorError,hoverBorderHover:e.colorErrorHover,activeBorderColor:e.colorError,activeOutlineColor:e.colorErrorOutline,color:e.colorError})),nx(e,{status:"warning",borderColor:e.colorWarning,hoverBorderHover:e.colorWarningHover,activeBorderColor:e.colorWarning,activeOutlineColor:e.colorWarningOutline,color:e.colorWarning})),{[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{background:e.colorBgContainerDisabled,color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.multipleItemBg,border:`${U(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`}})}),eR=(e,t)=>{const{componentCls:n,antCls:r}=e;return{[`&:not(${n}-customize-input) ${n}-selector`]:{background:t.bg,border:`${U(e.lineWidth)} ${e.lineType} transparent`,color:t.color},[`&:not(${n}-disabled):not(${n}-customize-input):not(${r}-pagination-size-changer)`]:{[`&:hover ${n}-selector`]:{background:t.hoverBg},[`${n}-focused& ${n}-selector`]:{background:e.selectorBg,borderColor:t.activeBorderColor,outline:0}}}},rx=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},eR(e,t))}),b8=e=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign({},eR(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor,color:e.colorText})),rx(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,color:e.colorError})),rx(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,color:e.colorWarning})),{[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{borderColor:e.colorBorder,background:e.colorBgContainerDisabled,color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.colorBgContainer,border:`${U(e.lineWidth)} ${e.lineType} ${e.colorSplit}`}})}),C8=e=>({"&-borderless":{[`${e.componentCls}-selector`]:{background:"transparent",border:`${U(e.lineWidth)} ${e.lineType} transparent`},[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.multipleItemBg,border:`${U(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`},[`&${e.componentCls}-status-error`]:{[`${e.componentCls}-prefix, ${e.componentCls}-selection-item`]:{color:e.colorError}},[`&${e.componentCls}-status-warning`]:{[`${e.componentCls}-prefix, ${e.componentCls}-selection-item`]:{color:e.colorWarning}}}}),tR=(e,t)=>{const{componentCls:n,antCls:r}=e;return{[`&:not(${n}-customize-input) ${n}-selector`]:{borderWidth:`0 0 ${U(e.lineWidth)} 0`,borderStyle:`none none ${e.lineType} none`,borderColor:t.borderColor,background:e.selectorBg,borderRadius:0},[`&:not(${n}-disabled):not(${n}-customize-input):not(${r}-pagination-size-changer)`]:{[`&:hover ${n}-selector`]:{borderColor:t.hoverBorderHover},[`${n}-focused& ${n}-selector`]:{borderColor:t.activeBorderColor,outline:0},[`${n}-prefix`]:{color:t.color}}}},ox=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},tR(e,t))}),S8=e=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign({},tR(e,{borderColor:e.colorBorder,hoverBorderHover:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeOutlineColor:e.activeOutlineColor,color:e.colorText})),ox(e,{status:"error",borderColor:e.colorError,hoverBorderHover:e.colorErrorHover,activeBorderColor:e.colorError,activeOutlineColor:e.colorErrorOutline,color:e.colorError})),ox(e,{status:"warning",borderColor:e.colorWarning,hoverBorderHover:e.colorWarningHover,activeBorderColor:e.colorWarning,activeOutlineColor:e.colorWarningOutline,color:e.colorWarning})),{[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.multipleItemBg,border:`${U(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`}})}),x8=e=>({[e.componentCls]:Object.assign(Object.assign(Object.assign(Object.assign({},y8(e)),b8(e)),C8(e)),S8(e))}),w8=e=>{const{componentCls:t}=e;return{position:"relative",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,input:{cursor:"pointer"},[`${t}-show-search&`]:{cursor:"text",input:{cursor:"auto",color:"inherit",height:"100%"}},[`${t}-disabled&`]:{cursor:"not-allowed",input:{cursor:"not-allowed"}}}},$8=e=>{const{componentCls:t}=e;return{[`${t}-selection-search-input`]:{margin:0,padding:0,background:"transparent",border:"none",outline:"none",appearance:"none",fontFamily:"inherit","&::-webkit-search-cancel-button":{display:"none",appearance:"none"}}}},E8=e=>{const{antCls:t,componentCls:n,inputPaddingHorizontalBase:r,iconCls:o}=e,a={[`${n}-clear`]:{opacity:1,background:e.colorBgBase,borderRadius:"50%"}};return{[n]:Object.assign(Object.assign({},Jt(e)),{position:"relative",display:"inline-flex",cursor:"pointer",[`&:not(${n}-customize-input) ${n}-selector`]:Object.assign(Object.assign({},w8(e)),$8(e)),[`${n}-selection-item`]:Object.assign(Object.assign({flex:1,fontWeight:"normal",position:"relative",userSelect:"none"},Bo),{[`> ${t}-typography`]:{display:"inline"}}),[`${n}-selection-placeholder`]:Object.assign(Object.assign({},Bo),{flex:1,color:e.colorTextPlaceholder,pointerEvents:"none"}),[`${n}-arrow`]:Object.assign(Object.assign({},Nc()),{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:r,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,lineHeight:1,textAlign:"center",pointerEvents:"none",display:"flex",alignItems:"center",transition:`opacity ${e.motionDurationSlow} ease`,[o]:{verticalAlign:"top",transition:`transform ${e.motionDurationSlow}`,"> svg":{verticalAlign:"top"},[`&:not(${n}-suffix)`]:{pointerEvents:"auto"}},[`${n}-disabled &`]:{cursor:"not-allowed"},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${n}-selection-wrap`]:{display:"flex",width:"100%",position:"relative",minWidth:0,"&:after":{content:'"\\a0"',width:0,overflow:"hidden"}},[`${n}-prefix`]:{flex:"none",marginInlineEnd:e.selectAffixPadding},[`${n}-clear`]:{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:r,zIndex:1,display:"inline-block",width:e.fontSizeIcon,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",cursor:"pointer",opacity:0,transition:`color ${e.motionDurationMid} ease, opacity ${e.motionDurationSlow} ease`,textRendering:"auto","&:before":{display:"block"},"&:hover":{color:e.colorIcon}},"@media(hover:none)":a,"&:hover":a}),[`${n}-status`]:{"&-error, &-warning, &-success, &-validating":{[`&${n}-has-feedback`]:{[`${n}-clear`]:{insetInlineEnd:e.calc(r).add(e.fontSize).add(e.paddingXS).equal()}}}}}},O8=e=>{const{componentCls:t}=e;return[{[t]:{[`&${t}-in-form-item`]:{width:"100%"}}},E8(e),g8(e),p8(e),u8(e),{[`${t}-rtl`]:{direction:"rtl"}},X0(e,{borderElCls:`${t}-selector`,focusElCls:`${t}-focused`})]},R8=Wt("Select",(e,{rootPrefixCls:t})=>{const n=Rt(e,{rootPrefixCls:t,inputPaddingHorizontalBase:e.calc(e.paddingSM).sub(1).equal(),multipleSelectItemHeight:e.multipleItemHeight,selectHeight:e.controlHeight});return[O8(n),x8(n)]},h8,{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});var P8={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"},I8=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:P8}))},oy=s.forwardRef(I8),N8={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"},T8=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:N8}))},nR=s.forwardRef(T8),M8={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"},_8=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:M8}))},ay=s.forwardRef(_8);function z8({suffixIcon:e,clearIcon:t,menuItemSelectedIcon:n,removeIcon:r,loading:o,multiple:a,hasFeedback:i,prefixCls:l,showSuffixIcon:c,feedbackIcon:u,showArrow:d,componentName:f}){const m=t??s.createElement(Mc,null),v=g=>e===null&&!i&&!d?null:s.createElement(s.Fragment,null,c!==!1&&g,i&&u);let p=null;if(e!==void 0)p=v(e);else if(o)p=v(s.createElement(vi,{spin:!0}));else{const g=`${l}-suffix`;p=({open:y,showSearch:C})=>v(y&&C?s.createElement(ay,{className:g}):s.createElement(nR,{className:g}))}let b=null;n!==void 0?b=n:a?b=s.createElement(oy,null):b=null;let h=null;return r!==void 0?h=r:h=s.createElement(xi,null),{clearIcon:m,suffixIcon:p,itemIcon:b,removeIcon:h}}function j8(e,t){return t!==void 0?t:e!==null}var L8=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n,r,o,a,i;const{prefixCls:l,bordered:c,className:u,rootClassName:d,getPopupContainer:f,popupClassName:m,dropdownClassName:v,listHeight:p=256,placement:b,listItemHeight:h,size:g,disabled:y,notFoundContent:C,status:x,builtinPlacements:S,dropdownMatchSelectWidth:w,popupMatchSelectWidth:E,direction:O,style:$,allowClear:R,variant:I,dropdownStyle:N,transitionName:T,tagRender:P,maxCount:M,prefix:_,dropdownRender:z,popupRender:j,onDropdownVisibleChange:L,onOpenChange:F,styles:W,classNames:H}=e,A=L8(e,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear","variant","dropdownStyle","transitionName","tagRender","maxCount","prefix","dropdownRender","popupRender","onDropdownVisibleChange","onOpenChange","styles","classNames"]),{getPopupContainer:V,getPrefixCls:K,renderEmpty:Y,direction:re,virtual:J,popupMatchSelectWidth:ae,popupOverflow:le}=s.useContext(lt),{showSearch:te,style:q,styles:X,className:Q,classNames:Z}=Rr("select"),[,ne]=Kn(),ie=h??(ne==null?void 0:ne.controlHeight),fe=K("select",l),$e=K(),Se=O??re,{compactSize:oe,compactItemClassnames:se}=jl(fe,Se),[ye,ce]=om("select",I,c),we=mr(fe),[Oe,Le,je]=R8(fe,we),xe=s.useMemo(()=>{const{mode:Ge}=e;if(Ge!=="combobox")return Ge===rR?"combobox":Ge},[e.mode]),Pe=xe==="multiple"||xe==="tags",Ce=j8(e.suffixIcon,e.showArrow),ve=(n=E??w)!==null&&n!==void 0?n:ae,Ee=((r=W==null?void 0:W.popup)===null||r===void 0?void 0:r.root)||((o=X.popup)===null||o===void 0?void 0:o.root)||N,de=j||z,ge=F||L,{status:me,hasFeedback:ue,isFormItemInput:Te,feedbackIcon:Qe}=s.useContext(So),pt=rm(me,x);let gt;C!==void 0?gt=C:xe==="combobox"?gt=null:gt=(Y==null?void 0:Y("Select"))||s.createElement(JO,{componentName:"Select"});const{suffixIcon:ft,itemIcon:Bt,removeIcon:xt,clearIcon:st}=z8(Object.assign(Object.assign({},A),{multiple:Pe,hasFeedback:ue,feedbackIcon:Qe,showSuffixIcon:Ce,prefixCls:fe,componentName:"Select"})),at=R===!0?{clearIcon:st}:R,Ke=Zt(A,["suffixIcon","itemIcon"]),Fe=G(((a=H==null?void 0:H.popup)===null||a===void 0?void 0:a.root)||((i=Z==null?void 0:Z.popup)===null||i===void 0?void 0:i.root)||m||v,{[`${fe}-dropdown-${Se}`]:Se==="rtl"},d,Z.root,H==null?void 0:H.root,je,we,Le),Re=no(Ge=>{var He;return(He=g??oe)!==null&&He!==void 0?He:Ge}),qe=s.useContext(bo),Je=y??qe,Ie=G({[`${fe}-lg`]:Re==="large",[`${fe}-sm`]:Re==="small",[`${fe}-rtl`]:Se==="rtl",[`${fe}-${ye}`]:ce,[`${fe}-in-form-item`]:Te},Wd(fe,pt,ue),se,Q,u,Z.root,H==null?void 0:H.root,d,je,we,Le),Ne=s.useMemo(()=>b!==void 0?b:Se==="rtl"?"bottomRight":"bottomLeft",[b,Se]),[Xe]=_c("SelectLike",Ee==null?void 0:Ee.zIndex);return Oe(s.createElement(ry,Object.assign({ref:t,virtual:J,showSearch:te},Ke,{style:Object.assign(Object.assign(Object.assign(Object.assign({},X.root),W==null?void 0:W.root),q),$),dropdownMatchSelectWidth:ve,transitionName:za($e,"slide-up",T),builtinPlacements:c8(S,le),listHeight:p,listItemHeight:ie,mode:xe,prefixCls:fe,placement:Ne,direction:Se,prefix:_,suffixIcon:ft,menuItemSelectedIcon:Bt,removeIcon:xt,allowClear:at,notFoundContent:gt,className:Ie,getPopupContainer:f||V,dropdownClassName:Fe,disabled:Je,dropdownStyle:Object.assign(Object.assign({},Ee),{zIndex:Xe}),maxCount:Pe?M:void 0,tagRender:Pe?P:void 0,dropdownRender:de,onDropdownVisibleChange:ge})))},La=s.forwardRef(D8),B8=DO(La,"dropdownAlign");La.SECRET_COMBOBOX_MODE_DO_NOT_USE=rR;La.Option=ny;La.OptGroup=ty;La._InternalPanelDoNotUseOrYouWillBeFired=B8;const oR=(e,t)=>{typeof(e==null?void 0:e.addEventListener)<"u"?e.addEventListener("change",t):typeof(e==null?void 0:e.addListener)<"u"&&e.addListener(t)},aR=(e,t)=>{typeof(e==null?void 0:e.removeEventListener)<"u"?e.removeEventListener("change",t):typeof(e==null?void 0:e.removeListener)<"u"&&e.removeListener(t)},mc=["xxl","xl","lg","md","sm","xs"],k8=e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`}),A8=e=>{const t=e,n=[].concat(mc).reverse();return n.forEach((r,o)=>{const a=r.toUpperCase(),i=`screen${a}Min`,l=`screen${a}`;if(!(t[i]<=t[l]))throw new Error(`${i}<=${l} fails : !(${t[i]}<=${t[l]})`);if(o{const[,e]=Kn(),t=k8(A8(e));return B.useMemo(()=>{const n=new Map;let r=-1,o={};return{responsiveMap:t,matchHandlers:{},dispatch(a){return o=a,n.forEach(i=>i(o)),n.size>=1},subscribe(a){return n.size||this.register(),r+=1,n.set(r,a),a(o),r},unsubscribe(a){n.delete(a),n.size||this.unregister()},register(){Object.entries(t).forEach(([a,i])=>{const l=({matches:u})=>{this.dispatch(Object.assign(Object.assign({},o),{[a]:u}))},c=window.matchMedia(i);oR(c,l),this.matchHandlers[i]={mql:c,listener:l},l(c)})},unregister(){Object.values(t).forEach(a=>{const i=this.matchHandlers[a];aR(i==null?void 0:i.mql,i==null?void 0:i.listener)}),n.clear()}}},[e])};function iy(){const[,e]=s.useReducer(t=>t+1,0);return e}function ly(e=!0,t={}){const n=s.useRef(t),r=iy(),o=F8();return Ot(()=>{const a=o.subscribe(i=>{n.current=i,e&&r()});return()=>o.unsubscribe(a)},[]),n.current}const Rl=e=>e?typeof e=="function"?e():e:null;function sy(e){var t=e.children,n=e.prefixCls,r=e.id,o=e.overlayInnerStyle,a=e.bodyClassName,i=e.className,l=e.style;return s.createElement("div",{className:G("".concat(n,"-content"),i),style:l},s.createElement("div",{className:G("".concat(n,"-inner"),a),id:r,role:"tooltip",style:o},typeof t=="function"?t():t))}var zi={shiftX:64,adjustY:1},ji={adjustX:1,shiftY:!0},Fr=[0,0],H8={left:{points:["cr","cl"],overflow:ji,offset:[-4,0],targetOffset:Fr},right:{points:["cl","cr"],overflow:ji,offset:[4,0],targetOffset:Fr},top:{points:["bc","tc"],overflow:zi,offset:[0,-4],targetOffset:Fr},bottom:{points:["tc","bc"],overflow:zi,offset:[0,4],targetOffset:Fr},topLeft:{points:["bl","tl"],overflow:zi,offset:[0,-4],targetOffset:Fr},leftTop:{points:["tr","tl"],overflow:ji,offset:[-4,0],targetOffset:Fr},topRight:{points:["br","tr"],overflow:zi,offset:[0,-4],targetOffset:Fr},rightTop:{points:["tl","tr"],overflow:ji,offset:[4,0],targetOffset:Fr},bottomRight:{points:["tr","br"],overflow:zi,offset:[0,4],targetOffset:Fr},rightBottom:{points:["bl","br"],overflow:ji,offset:[4,0],targetOffset:Fr},bottomLeft:{points:["tl","bl"],overflow:zi,offset:[0,4],targetOffset:Fr},leftBottom:{points:["br","bl"],overflow:ji,offset:[-4,0],targetOffset:Fr}},V8=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow","classNames","styles"],W8=function(t,n){var r=t.overlayClassName,o=t.trigger,a=o===void 0?["hover"]:o,i=t.mouseEnterDelay,l=i===void 0?0:i,c=t.mouseLeaveDelay,u=c===void 0?.1:c,d=t.overlayStyle,f=t.prefixCls,m=f===void 0?"rc-tooltip":f,v=t.children,p=t.onVisibleChange,b=t.afterVisibleChange,h=t.transitionName,g=t.animation,y=t.motion,C=t.placement,x=C===void 0?"right":C,S=t.align,w=S===void 0?{}:S,E=t.destroyTooltipOnHide,O=E===void 0?!1:E,$=t.defaultVisible,R=t.getTooltipContainer,I=t.overlayInnerStyle;t.arrowContent;var N=t.overlay,T=t.id,P=t.showArrow,M=P===void 0?!0:P,_=t.classNames,z=t.styles,j=ut(t,V8),L=Qf(T),F=s.useRef(null);s.useImperativeHandle(n,function(){return F.current});var W=k({},j);"visible"in t&&(W.popupVisible=t.visible);var H=function(){return s.createElement(sy,{key:"content",prefixCls:m,id:L,bodyClassName:_==null?void 0:_.body,overlayInnerStyle:k(k({},I),z==null?void 0:z.body)},N)},A=function(){var K=s.Children.only(v),Y=(K==null?void 0:K.props)||{},re=k(k({},Y),{},{"aria-describedby":N?L:null});return s.cloneElement(v,re)};return s.createElement(tm,pe({popupClassName:G(r,_==null?void 0:_.root),prefixCls:m,popup:H,action:a,builtinPlacements:H8,popupPlacement:x,ref:F,popupAlign:w,getPopupContainer:R,onPopupVisibleChange:p,afterPopupVisibleChange:b,popupTransitionName:h,popupAnimation:g,popupMotion:y,defaultPopupVisible:$,autoDestroy:O,mouseLeaveDelay:u,popupStyle:k(k({},d),z==null?void 0:z.root),mouseEnterDelay:l,arrow:M},W),A())};const K8=s.forwardRef(W8);function cy(e){const{sizePopupArrow:t,borderRadiusXS:n,borderRadiusOuter:r}=e,o=t/2,a=0,i=o,l=r*1/Math.sqrt(2),c=o-r*(1-1/Math.sqrt(2)),u=o-n*(1/Math.sqrt(2)),d=r*(Math.sqrt(2)-1)+n*(1/Math.sqrt(2)),f=2*o-u,m=d,v=2*o-l,p=c,b=2*o-a,h=i,g=o*Math.sqrt(2)+r*(Math.sqrt(2)-2),y=r*(Math.sqrt(2)-1),C=`polygon(${y}px 100%, 50% ${y}px, ${2*o-y}px 100%, ${y}px 100%)`,x=`path('M ${a} ${i} A ${r} ${r} 0 0 0 ${l} ${c} L ${u} ${d} A ${n} ${n} 0 0 1 ${f} ${m} L ${v} ${p} A ${r} ${r} 0 0 0 ${b} ${h} Z')`;return{arrowShadowWidth:g,arrowPath:x,arrowPolygon:C}}const U8=(e,t,n)=>{const{sizePopupArrow:r,arrowPolygon:o,arrowPath:a,arrowShadowWidth:i,borderRadiusXS:l,calc:c}=e;return{pointerEvents:"none",width:r,height:r,overflow:"hidden","&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:r,height:c(r).div(2).equal(),background:t,clipPath:{_multi_value_:!0,value:[o,a]},content:'""'},"&::after":{content:'""',position:"absolute",width:i,height:i,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${U(l)} 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:n,zIndex:0,background:"transparent"}}},iR=8;function am(e){const{contentRadius:t,limitVerticalRadius:n}=e,r=t>12?t+2:12;return{arrowOffsetHorizontal:r,arrowOffsetVertical:n?iR:r}}function wu(e,t){return e?t:{}}function uy(e,t,n){const{componentCls:r,boxShadowPopoverArrow:o,arrowOffsetVertical:a,arrowOffsetHorizontal:i}=e,{arrowDistance:l=0,arrowPlacement:c={left:!0,right:!0,top:!0,bottom:!0}}=n||{};return{[r]:Object.assign(Object.assign(Object.assign(Object.assign({[`${r}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},U8(e,t,o)),{"&:before":{background:t}})]},wu(!!c.top,{[[`&-placement-top > ${r}-arrow`,`&-placement-topLeft > ${r}-arrow`,`&-placement-topRight > ${r}-arrow`].join(",")]:{bottom:l,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top > ${r}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},"&-placement-topLeft":{"--arrow-offset-horizontal":i,[`> ${r}-arrow`]:{left:{_skip_check_:!0,value:i}}},"&-placement-topRight":{"--arrow-offset-horizontal":`calc(100% - ${U(i)})`,[`> ${r}-arrow`]:{right:{_skip_check_:!0,value:i}}}})),wu(!!c.bottom,{[[`&-placement-bottom > ${r}-arrow`,`&-placement-bottomLeft > ${r}-arrow`,`&-placement-bottomRight > ${r}-arrow`].join(",")]:{top:l,transform:"translateY(-100%)"},[`&-placement-bottom > ${r}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},"&-placement-bottomLeft":{"--arrow-offset-horizontal":i,[`> ${r}-arrow`]:{left:{_skip_check_:!0,value:i}}},"&-placement-bottomRight":{"--arrow-offset-horizontal":`calc(100% - ${U(i)})`,[`> ${r}-arrow`]:{right:{_skip_check_:!0,value:i}}}})),wu(!!c.left,{[[`&-placement-left > ${r}-arrow`,`&-placement-leftTop > ${r}-arrow`,`&-placement-leftBottom > ${r}-arrow`].join(",")]:{right:{_skip_check_:!0,value:l},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left > ${r}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop > ${r}-arrow`]:{top:a},[`&-placement-leftBottom > ${r}-arrow`]:{bottom:a}})),wu(!!c.right,{[[`&-placement-right > ${r}-arrow`,`&-placement-rightTop > ${r}-arrow`,`&-placement-rightBottom > ${r}-arrow`].join(",")]:{left:{_skip_check_:!0,value:l},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right > ${r}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop > ${r}-arrow`]:{top:a},[`&-placement-rightBottom > ${r}-arrow`]:{bottom:a}}))}}function G8(e,t,n,r){if(r===!1)return{adjustX:!1,adjustY:!1};const o=r&&typeof r=="object"?r:{},a={};switch(e){case"top":case"bottom":a.shiftX=t.arrowOffsetHorizontal*2+n,a.shiftY=!0,a.adjustY=!0;break;case"left":case"right":a.shiftY=t.arrowOffsetVertical*2+n,a.shiftX=!0,a.adjustX=!0;break}const i=Object.assign(Object.assign({},a),o);return i.shiftX||(i.adjustX=!0),i.shiftY||(i.adjustY=!0),i}const ax={left:{points:["cr","cl"]},right:{points:["cl","cr"]},top:{points:["bc","tc"]},bottom:{points:["tc","bc"]},topLeft:{points:["bl","tl"]},leftTop:{points:["tr","tl"]},topRight:{points:["br","tr"]},rightTop:{points:["tl","tr"]},bottomRight:{points:["tr","br"]},rightBottom:{points:["bl","br"]},bottomLeft:{points:["tl","bl"]},leftBottom:{points:["br","bl"]}},q8={topLeft:{points:["bl","tc"]},leftTop:{points:["tr","cl"]},topRight:{points:["br","tc"]},rightTop:{points:["tl","cr"]},bottomRight:{points:["tr","bc"]},rightBottom:{points:["bl","cr"]},bottomLeft:{points:["tl","bc"]},leftBottom:{points:["br","cl"]}},X8=new Set(["topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]);function lR(e){const{arrowWidth:t,autoAdjustOverflow:n,arrowPointAtCenter:r,offset:o,borderRadius:a,visibleFirst:i}=e,l=t/2,c={};return Object.keys(ax).forEach(u=>{const d=r&&q8[u]||ax[u],f=Object.assign(Object.assign({},d),{offset:[0,0],dynamicInset:!0});switch(c[u]=f,X8.has(u)&&(f.autoArrow=!1),u){case"top":case"topLeft":case"topRight":f.offset[1]=-l-o;break;case"bottom":case"bottomLeft":case"bottomRight":f.offset[1]=l+o;break;case"left":case"leftTop":case"leftBottom":f.offset[0]=-l-o;break;case"right":case"rightTop":case"rightBottom":f.offset[0]=l+o;break}const m=am({contentRadius:a,limitVerticalRadius:!0});if(r)switch(u){case"topLeft":case"bottomLeft":f.offset[0]=-m.arrowOffsetHorizontal-l;break;case"topRight":case"bottomRight":f.offset[0]=m.arrowOffsetHorizontal+l;break;case"leftTop":case"rightTop":f.offset[1]=-m.arrowOffsetHorizontal*2+l;break;case"leftBottom":case"rightBottom":f.offset[1]=m.arrowOffsetHorizontal*2-l;break}f.overflow=G8(u,m,t,n),i&&(f.htmlRegion="visibleFirst")}),c}const Y8=e=>{const{calc:t,componentCls:n,tooltipMaxWidth:r,tooltipColor:o,tooltipBg:a,tooltipBorderRadius:i,zIndexPopup:l,controlHeight:c,boxShadowSecondary:u,paddingSM:d,paddingXS:f,arrowOffsetHorizontal:m,sizePopupArrow:v}=e,p=t(i).add(v).add(m).equal(),b=t(i).mul(2).add(v).equal();return[{[n]:Object.assign(Object.assign(Object.assign(Object.assign({},Jt(e)),{position:"absolute",zIndex:l,display:"block",width:"max-content",maxWidth:r,visibility:"visible","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:["var(--valid-offset-x, 50%)","var(--arrow-y, 50%)"].join(" "),"&-hidden":{display:"none"},"--antd-arrow-background-color":a,[`${n}-inner`]:{minWidth:b,minHeight:c,padding:`${U(e.calc(d).div(2).equal())} ${U(f)}`,color:o,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:a,borderRadius:i,boxShadow:u,boxSizing:"border-box"},[["&-placement-topLeft","&-placement-topRight","&-placement-bottomLeft","&-placement-bottomRight"].join(",")]:{minWidth:p},[["&-placement-left","&-placement-leftTop","&-placement-leftBottom","&-placement-right","&-placement-rightTop","&-placement-rightBottom"].join(",")]:{[`${n}-inner`]:{borderRadius:e.min(i,iR)}},[`${n}-content`]:{position:"relative"}}),C2(e,(h,{darkColor:g})=>({[`&${n}-${h}`]:{[`${n}-inner`]:{backgroundColor:g},[`${n}-arrow`]:{"--antd-arrow-background-color":g}}}))),{"&-rtl":{direction:"rtl"}})},uy(e,"var(--antd-arrow-background-color)"),{[`${n}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow}}]},Q8=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+70},am({contentRadius:e.borderRadius,limitVerticalRadius:!0})),cy(Rt(e,{borderRadiusOuter:Math.min(e.borderRadiusOuter,4)}))),sR=(e,t=!0)=>Wt("Tooltip",r=>{const{borderRadius:o,colorTextLightSolid:a,colorBgSpotlight:i}=r,l=Rt(r,{tooltipMaxWidth:250,tooltipColor:a,tooltipBorderRadius:o,tooltipBg:i});return[Y8(l),jc(r,"zoom-big-fast")]},Q8,{resetStyle:!1,injectStyle:t})(e),J8=_a.map(e=>`${e}-inverse`),Z8=["success","processing","error","default","warning"];function cR(e,t=!0){return t?[].concat(he(J8),he(_a)).includes(e):_a.includes(e)}function eA(e){return Z8.includes(e)}function uR(e,t){const n=cR(t),r=G({[`${e}-${t}`]:t&&n}),o={},a={};return t&&!n&&(o.background=t,a["--antd-arrow-background-color"]=t),{className:r,overlayStyle:o,arrowStyle:a}}const tA=e=>{const{prefixCls:t,className:n,placement:r="top",title:o,color:a,overlayInnerStyle:i}=e,{getPrefixCls:l}=s.useContext(lt),c=l("tooltip",t),[u,d,f]=sR(c),m=uR(c,a),v=m.arrowStyle,p=Object.assign(Object.assign({},i),m.overlayStyle),b=G(d,f,c,`${c}-pure`,`${c}-placement-${r}`,n,m.className);return u(s.createElement("div",{className:b,style:v},s.createElement("div",{className:`${c}-arrow`}),s.createElement(sy,Object.assign({},e,{className:d,prefixCls:c,overlayInnerStyle:p}),o)))};var nA=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n,r;const{prefixCls:o,openClassName:a,getTooltipContainer:i,color:l,overlayInnerStyle:c,children:u,afterOpenChange:d,afterVisibleChange:f,destroyTooltipOnHide:m,destroyOnHidden:v,arrow:p=!0,title:b,overlay:h,builtinPlacements:g,arrowPointAtCenter:y=!1,autoAdjustOverflow:C=!0,motion:x,getPopupContainer:S,placement:w="top",mouseEnterDelay:E=.1,mouseLeaveDelay:O=.1,overlayStyle:$,rootClassName:R,overlayClassName:I,styles:N,classNames:T}=e,P=nA(e,["prefixCls","openClassName","getTooltipContainer","color","overlayInnerStyle","children","afterOpenChange","afterVisibleChange","destroyTooltipOnHide","destroyOnHidden","arrow","title","overlay","builtinPlacements","arrowPointAtCenter","autoAdjustOverflow","motion","getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName","overlayClassName","styles","classNames"]),M=!!p,[,_]=Kn(),{getPopupContainer:z,getPrefixCls:j,direction:L,className:F,style:W,classNames:H,styles:A}=Rr("tooltip"),V=Si(),K=s.useRef(null),Y=()=>{var Ce;(Ce=K.current)===null||Ce===void 0||Ce.forceAlign()};s.useImperativeHandle(t,()=>{var Ce,ve;return{forceAlign:Y,forcePopupAlign:()=>{V.deprecated(!1,"forcePopupAlign","forceAlign"),Y()},nativeElement:(Ce=K.current)===null||Ce===void 0?void 0:Ce.nativeElement,popupElement:(ve=K.current)===null||ve===void 0?void 0:ve.popupElement}});const[re,J]=on(!1,{value:(n=e.open)!==null&&n!==void 0?n:e.visible,defaultValue:(r=e.defaultOpen)!==null&&r!==void 0?r:e.defaultVisible}),ae=!b&&!h&&b!==0,le=Ce=>{var ve,Ee;J(ae?!1:Ce),ae||((ve=e.onOpenChange)===null||ve===void 0||ve.call(e,Ce),(Ee=e.onVisibleChange)===null||Ee===void 0||Ee.call(e,Ce))},te=s.useMemo(()=>{var Ce,ve;let Ee=y;return typeof p=="object"&&(Ee=(ve=(Ce=p.pointAtCenter)!==null&&Ce!==void 0?Ce:p.arrowPointAtCenter)!==null&&ve!==void 0?ve:y),g||lR({arrowPointAtCenter:Ee,autoAdjustOverflow:C,arrowWidth:M?_.sizePopupArrow:0,borderRadius:_.borderRadius,offset:_.marginXXS,visibleFirst:!0})},[y,p,g,_]),q=s.useMemo(()=>b===0?b:h||b||"",[h,b]),X=s.createElement(dc,{space:!0},typeof q=="function"?q():q),Q=j("tooltip",o),Z=j(),ne=e["data-popover-inject"];let ie=re;!("open"in e)&&!("visible"in e)&&ae&&(ie=!1);const fe=s.isValidElement(u)&&!F2(u)?u:s.createElement("span",null,u),$e=fe.props,Se=!$e.className||typeof $e.className=="string"?G($e.className,a||`${Q}-open`):$e.className,[oe,se,ye]=sR(Q,!ne),ce=uR(Q,l),we=ce.arrowStyle,Oe=G(I,{[`${Q}-rtl`]:L==="rtl"},ce.className,R,se,ye,F,H.root,T==null?void 0:T.root),Le=G(H.body,T==null?void 0:T.body),[je,xe]=_c("Tooltip",P.zIndex),Pe=s.createElement(K8,Object.assign({},P,{zIndex:je,showArrow:M,placement:w,mouseEnterDelay:E,mouseLeaveDelay:O,prefixCls:Q,classNames:{root:Oe,body:Le},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},we),A.root),W),$),N==null?void 0:N.root),body:Object.assign(Object.assign(Object.assign(Object.assign({},A.body),c),N==null?void 0:N.body),ce.overlayStyle)},getTooltipContainer:S||i||z,ref:K,builtinPlacements:te,overlay:X,visible:ie,onVisibleChange:le,afterVisibleChange:d??f,arrowContent:s.createElement("span",{className:`${Q}-arrow-content`}),motion:{motionName:za(Z,"zoom-big-fast",e.transitionName),motionDeadline:1e3},destroyTooltipOnHide:v??!!m}),ie?nr(fe,{className:Se}):fe);return oe(s.createElement(Bf.Provider,{value:xe},Pe))}),xo=rA;xo._InternalPanelDoNotUseOrYouWillBeFired=tA;const oA=e=>{const{componentCls:t,popoverColor:n,titleMinWidth:r,fontWeightStrong:o,innerPadding:a,boxShadowSecondary:i,colorTextHeading:l,borderRadiusLG:c,zIndexPopup:u,titleMarginBottom:d,colorBgElevated:f,popoverBg:m,titleBorderBottom:v,innerContentPadding:p,titlePadding:b}=e;return[{[t]:Object.assign(Object.assign({},Jt(e)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text","--valid-offset-x":"var(--arrow-offset-horizontal, var(--arrow-x))",transformOrigin:["var(--valid-offset-x, 50%)","var(--arrow-y, 50%)"].join(" "),"--antd-arrow-background-color":f,width:"max-content",maxWidth:"100vw","&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${t}-content`]:{position:"relative"},[`${t}-inner`]:{backgroundColor:m,backgroundClip:"padding-box",borderRadius:c,boxShadow:i,padding:a},[`${t}-title`]:{minWidth:r,marginBottom:d,color:l,fontWeight:o,borderBottom:v,padding:b},[`${t}-inner-content`]:{color:n,padding:p}})},uy(e,"var(--antd-arrow-background-color)"),{[`${t}-pure`]:{position:"relative",maxWidth:"none",margin:e.sizePopupArrow,display:"inline-block",[`${t}-content`]:{display:"inline-block"}}}]},aA=e=>{const{componentCls:t}=e;return{[t]:_a.map(n=>{const r=e[`${n}6`];return{[`&${t}-${n}`]:{"--antd-arrow-background-color":r,[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{background:"transparent"}}}})}},iA=e=>{const{lineWidth:t,controlHeight:n,fontHeight:r,padding:o,wireframe:a,zIndexPopupBase:i,borderRadiusLG:l,marginXS:c,lineType:u,colorSplit:d,paddingSM:f}=e,m=n-r,v=m/2,p=m/2-t,b=o;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:i+30},cy(e)),am({contentRadius:l,limitVerticalRadius:!0})),{innerPadding:a?0:12,titleMarginBottom:a?0:c,titlePadding:a?`${v}px ${b}px ${p}px`:0,titleBorderBottom:a?`${t}px ${u} ${d}`:"none",innerContentPadding:a?`${f}px ${b}px`:0})},dR=Wt("Popover",e=>{const{colorBgElevated:t,colorText:n}=e,r=Rt(e,{popoverBg:t,popoverColor:n});return[oA(r),aA(r),jc(r,"zoom-big")]},iA,{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var lA=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o!e&&!t?null:s.createElement(s.Fragment,null,e&&s.createElement("div",{className:`${n}-title`},e),t&&s.createElement("div",{className:`${n}-inner-content`},t)),sA=e=>{const{hashId:t,prefixCls:n,className:r,style:o,placement:a="top",title:i,content:l,children:c}=e,u=Rl(i),d=Rl(l),f=G(t,n,`${n}-pure`,`${n}-placement-${a}`,r);return s.createElement("div",{className:f,style:o},s.createElement("div",{className:`${n}-arrow`}),s.createElement(sy,Object.assign({},e,{className:t,prefixCls:n}),c||s.createElement(fR,{prefixCls:n,title:u,content:d})))},mR=e=>{const{prefixCls:t,className:n}=e,r=lA(e,["prefixCls","className"]),{getPrefixCls:o}=s.useContext(lt),a=o("popover",t),[i,l,c]=dR(a);return i(s.createElement(sA,Object.assign({},r,{prefixCls:a,hashId:l,className:G(n,c)})))};var cA=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n,r;const{prefixCls:o,title:a,content:i,overlayClassName:l,placement:c="top",trigger:u="hover",children:d,mouseEnterDelay:f=.1,mouseLeaveDelay:m=.1,onOpenChange:v,overlayStyle:p={},styles:b,classNames:h}=e,g=cA(e,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle","styles","classNames"]),{getPrefixCls:y,className:C,style:x,classNames:S,styles:w}=Rr("popover"),E=y("popover",o),[O,$,R]=dR(E),I=y(),N=G(l,$,R,C,S.root,h==null?void 0:h.root),T=G(S.body,h==null?void 0:h.body),[P,M]=on(!1,{value:(n=e.open)!==null&&n!==void 0?n:e.visible,defaultValue:(r=e.defaultOpen)!==null&&r!==void 0?r:e.defaultVisible}),_=(W,H)=>{M(W,!0),v==null||v(W,H)},z=W=>{W.keyCode===ke.ESC&&_(!1,W)},j=W=>{_(W)},L=Rl(a),F=Rl(i);return O(s.createElement(xo,Object.assign({placement:c,trigger:u,mouseEnterDelay:f,mouseLeaveDelay:m},g,{prefixCls:E,classNames:{root:N,body:T},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},w.root),x),p),b==null?void 0:b.root),body:Object.assign(Object.assign({},w.body),b==null?void 0:b.body)},ref:t,open:P,onOpenChange:j,overlay:L||F?s.createElement(fR,{prefixCls:E,title:L,content:F}):null,transitionName:za(I,"zoom-big",g.transitionName),"data-popover-inject":!0}),nr(d,{onKeyDown:W=>{var H,A;s.isValidElement(d)&&((A=d==null?void 0:(H=d.props).onKeyDown)===null||A===void 0||A.call(H,W)),z(W)}})))}),vR=uA;vR._InternalPanelDoNotUseOrYouWillBeFired=mR;var dA={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"},fA=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:dA}))},vc=s.forwardRef(fA),mA=ke.ESC,vA=ke.TAB;function pA(e){var t=e.visible,n=e.triggerRef,r=e.onVisibleChange,o=e.autoFocus,a=e.overlayRef,i=s.useRef(!1),l=function(){if(t){var f,m;(f=n.current)===null||f===void 0||(m=f.focus)===null||m===void 0||m.call(f),r==null||r(!1)}},c=function(){var f;return(f=a.current)!==null&&f!==void 0&&f.focus?(a.current.focus(),i.current=!0,!0):!1},u=function(f){switch(f.keyCode){case mA:l();break;case vA:{var m=!1;i.current||(m=c()),m?f.preventDefault():l();break}}};s.useEffect(function(){return t?(window.addEventListener("keydown",u),o&&Lt(c,3),function(){window.removeEventListener("keydown",u),i.current=!1}):function(){i.current=!1}},[t])}var gA=s.forwardRef(function(e,t){var n=e.overlay,r=e.arrow,o=e.prefixCls,a=s.useMemo(function(){var l;return typeof n=="function"?l=n():l=n,l},[n]),i=Or(t,Ci(a));return B.createElement(B.Fragment,null,r&&B.createElement("div",{className:"".concat(o,"-arrow")}),B.cloneElement(a,{ref:Lo(a)?i:void 0}))}),Li={adjustX:1,adjustY:1},Di=[0,0],hA={topLeft:{points:["bl","tl"],overflow:Li,offset:[0,-4],targetOffset:Di},top:{points:["bc","tc"],overflow:Li,offset:[0,-4],targetOffset:Di},topRight:{points:["br","tr"],overflow:Li,offset:[0,-4],targetOffset:Di},bottomLeft:{points:["tl","bl"],overflow:Li,offset:[0,4],targetOffset:Di},bottom:{points:["tc","bc"],overflow:Li,offset:[0,4],targetOffset:Di},bottomRight:{points:["tr","br"],overflow:Li,offset:[0,4],targetOffset:Di}},yA=["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger","autoFocus","overlay","children","onVisibleChange"];function bA(e,t){var n,r=e.arrow,o=r===void 0?!1:r,a=e.prefixCls,i=a===void 0?"rc-dropdown":a,l=e.transitionName,c=e.animation,u=e.align,d=e.placement,f=d===void 0?"bottomLeft":d,m=e.placements,v=m===void 0?hA:m,p=e.getPopupContainer,b=e.showAction,h=e.hideAction,g=e.overlayClassName,y=e.overlayStyle,C=e.visible,x=e.trigger,S=x===void 0?["hover"]:x,w=e.autoFocus,E=e.overlay,O=e.children,$=e.onVisibleChange,R=ut(e,yA),I=B.useState(),N=ee(I,2),T=N[0],P=N[1],M="visible"in e?C:T,_=B.useRef(null),z=B.useRef(null),j=B.useRef(null);B.useImperativeHandle(t,function(){return _.current});var L=function(J){P(J),$==null||$(J)};pA({visible:M,triggerRef:j,onVisibleChange:L,autoFocus:w,overlayRef:z});var F=function(J){var ae=e.onOverlayClick;P(!1),ae&&ae(J)},W=function(){return B.createElement(gA,{ref:z,overlay:E,prefixCls:i,arrow:o})},H=function(){return typeof E=="function"?W:W()},A=function(){var J=e.minOverlayWidthMatchTrigger,ae=e.alignPoint;return"minOverlayWidthMatchTrigger"in e?J:!ae},V=function(){var J=e.openClassName;return J!==void 0?J:"".concat(i,"-open")},K=B.cloneElement(O,{className:G((n=O.props)===null||n===void 0?void 0:n.className,M&&V()),ref:Lo(O)?Or(j,Ci(O)):void 0}),Y=h;return!Y&&S.indexOf("contextMenu")!==-1&&(Y=["click"]),B.createElement(tm,pe({builtinPlacements:v},R,{prefixCls:i,ref:_,popupClassName:G(g,D({},"".concat(i,"-show-arrow"),o)),popupStyle:y,action:S,showAction:b,hideAction:Y,popupPlacement:f,popupAlign:u,popupTransitionName:l,popupAnimation:c,popupVisible:M,stretch:A()?"minWidth":"",popup:H(),onPopupVisibleChange:L,onPopupClick:F,getPopupContainer:p}),K)}const pR=B.forwardRef(bA),CA=e=>typeof e!="object"&&typeof e!="function"||e===null;var gR=s.createContext(null);function hR(e,t){return e===void 0?null:"".concat(e,"-").concat(t)}function yR(e){var t=s.useContext(gR);return hR(t,e)}var SA=["children","locked"],wo=s.createContext(null);function xA(e,t){var n=k({},e);return Object.keys(t).forEach(function(r){var o=t[r];o!==void 0&&(n[r]=o)}),n}function pc(e){var t=e.children,n=e.locked,r=ut(e,SA),o=s.useContext(wo),a=bi(function(){return xA(o,r)},[o,r],function(i,l){return!n&&(i[0]!==l[0]||!Do(i[1],l[1],!0))});return s.createElement(wo.Provider,{value:a},t)}var wA=[],bR=s.createContext(null);function im(){return s.useContext(bR)}var CR=s.createContext(wA);function Dl(e){var t=s.useContext(CR);return s.useMemo(function(){return e!==void 0?[].concat(he(t),[e]):t},[t,e])}var SR=s.createContext(null),dy=s.createContext({});function ix(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(Af(e)){var n=e.nodeName.toLowerCase(),r=["input","select","textarea","button"].includes(n)||e.isContentEditable||n==="a"&&!!e.getAttribute("href"),o=e.getAttribute("tabindex"),a=Number(o),i=null;return o&&!Number.isNaN(a)?i=a:r&&i===null&&(i=0),r&&e.disabled&&(i=null),i!==null&&(i>=0||t&&i<0)}return!1}function $A(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=he(e.querySelectorAll("*")).filter(function(r){return ix(r,t)});return ix(e,t)&&n.unshift(e),n}var eh=ke.LEFT,th=ke.RIGHT,nh=ke.UP,ed=ke.DOWN,td=ke.ENTER,xR=ke.ESC,os=ke.HOME,as=ke.END,lx=[nh,ed,eh,th];function EA(e,t,n,r){var o,a="prev",i="next",l="children",c="parent";if(e==="inline"&&r===td)return{inlineTrigger:!0};var u=D(D({},nh,a),ed,i),d=D(D(D(D({},eh,n?i:a),th,n?a:i),ed,l),td,l),f=D(D(D(D(D(D({},nh,a),ed,i),td,l),xR,c),eh,n?l:c),th,n?c:l),m={inline:u,horizontal:d,vertical:f,inlineSub:u,horizontalSub:f,verticalSub:f},v=(o=m["".concat(e).concat(t?"":"Sub")])===null||o===void 0?void 0:o[r];switch(v){case a:return{offset:-1,sibling:!0};case i:return{offset:1,sibling:!0};case c:return{offset:-1,sibling:!1};case l:return{offset:1,sibling:!1};default:return null}}function OA(e){for(var t=e;t;){if(t.getAttribute("data-menu-list"))return t;t=t.parentElement}return null}function RA(e,t){for(var n=e||document.activeElement;n;){if(t.has(n))return n;n=n.parentElement}return null}function fy(e,t){var n=$A(e,!0);return n.filter(function(r){return t.has(r)})}function sx(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;if(!e)return null;var o=fy(e,t),a=o.length,i=o.findIndex(function(l){return n===l});return r<0?i===-1?i=a-1:i-=1:r>0&&(i+=1),i=(i+a)%a,o[i]}var rh=function(t,n){var r=new Set,o=new Map,a=new Map;return t.forEach(function(i){var l=document.querySelector("[data-menu-id='".concat(hR(n,i),"']"));l&&(r.add(l),a.set(l,i),o.set(i,l))}),{elements:r,key2element:o,element2key:a}};function PA(e,t,n,r,o,a,i,l,c,u){var d=s.useRef(),f=s.useRef();f.current=t;var m=function(){Lt.cancel(d.current)};return s.useEffect(function(){return function(){m()}},[]),function(v){var p=v.which;if([].concat(lx,[td,xR,os,as]).includes(p)){var b=a(),h=rh(b,r),g=h,y=g.elements,C=g.key2element,x=g.element2key,S=C.get(t),w=RA(S,y),E=x.get(w),O=EA(e,i(E,!0).length===1,n,p);if(!O&&p!==os&&p!==as)return;(lx.includes(p)||[os,as].includes(p))&&v.preventDefault();var $=function(z){if(z){var j=z,L=z.querySelector("a");L!=null&&L.getAttribute("href")&&(j=L);var F=x.get(z);l(F),m(),d.current=Lt(function(){f.current===F&&j.focus()})}};if([os,as].includes(p)||O.sibling||!w){var R;!w||e==="inline"?R=o.current:R=OA(w);var I,N=fy(R,y);p===os?I=N[0]:p===as?I=N[N.length-1]:I=sx(R,y,w,O.offset),$(I)}else if(O.inlineTrigger)c(E);else if(O.offset>0)c(E,!0),m(),d.current=Lt(function(){h=rh(b,r);var _=w.getAttribute("aria-controls"),z=document.getElementById(_),j=sx(z,h.elements);$(j)},5);else if(O.offset<0){var T=i(E,!0),P=T[T.length-2],M=C.get(P);c(P,!1),$(M)}}u==null||u(v)}}function IA(e){Promise.resolve().then(e)}var my="__RC_UTIL_PATH_SPLIT__",cx=function(t){return t.join(my)},NA=function(t){return t.split(my)},oh="rc-menu-more";function TA(){var e=s.useState({}),t=ee(e,2),n=t[1],r=s.useRef(new Map),o=s.useRef(new Map),a=s.useState([]),i=ee(a,2),l=i[0],c=i[1],u=s.useRef(0),d=s.useRef(!1),f=function(){d.current||n({})},m=s.useCallback(function(C,x){var S=cx(x);o.current.set(S,C),r.current.set(C,S),u.current+=1;var w=u.current;IA(function(){w===u.current&&f()})},[]),v=s.useCallback(function(C,x){var S=cx(x);o.current.delete(S),r.current.delete(C)},[]),p=s.useCallback(function(C){c(C)},[]),b=s.useCallback(function(C,x){var S=r.current.get(C)||"",w=NA(S);return x&&l.includes(w[0])&&w.unshift(oh),w},[l]),h=s.useCallback(function(C,x){return C.filter(function(S){return S!==void 0}).some(function(S){var w=b(S,!0);return w.includes(x)})},[b]),g=function(){var x=he(r.current.keys());return l.length&&x.push(oh),x},y=s.useCallback(function(C){var x="".concat(r.current.get(C)).concat(my),S=new Set;return he(o.current.keys()).forEach(function(w){w.startsWith(x)&&S.add(o.current.get(w))}),S},[]);return s.useEffect(function(){return function(){d.current=!0}},[]),{registerPath:m,unregisterPath:v,refreshOverflowKeys:p,isSubPathKey:h,getKeyPath:b,getKeys:g,getSubPathKeys:y}}function ps(e){var t=s.useRef(e);t.current=e;var n=s.useCallback(function(){for(var r,o=arguments.length,a=new Array(o),i=0;i1&&(y.motionAppear=!1);var C=y.onVisibleChanged;return y.onVisibleChanged=function(x){return!m.current&&!x&&h(!0),C==null?void 0:C(x)},b?null:s.createElement(pc,{mode:a,locked:!m.current},s.createElement(to,pe({visible:g},y,{forceRender:c,removeOnLeave:!1,leavedClassName:"".concat(l,"-hidden")}),function(x){var S=x.className,w=x.style;return s.createElement(vy,{id:t,className:S,style:w},o)}))}var qA=["style","className","title","eventKey","warnKey","disabled","internalPopupClose","children","itemIcon","expandIcon","popupClassName","popupOffset","popupStyle","onClick","onMouseEnter","onMouseLeave","onTitleClick","onTitleMouseEnter","onTitleMouseLeave"],XA=["active"],YA=s.forwardRef(function(e,t){var n=e.style,r=e.className,o=e.title,a=e.eventKey;e.warnKey;var i=e.disabled,l=e.internalPopupClose,c=e.children,u=e.itemIcon,d=e.expandIcon,f=e.popupClassName,m=e.popupOffset,v=e.popupStyle,p=e.onClick,b=e.onMouseEnter,h=e.onMouseLeave,g=e.onTitleClick,y=e.onTitleMouseEnter,C=e.onTitleMouseLeave,x=ut(e,qA),S=yR(a),w=s.useContext(wo),E=w.prefixCls,O=w.mode,$=w.openKeys,R=w.disabled,I=w.overflowDisabled,N=w.activeKey,T=w.selectedKeys,P=w.itemIcon,M=w.expandIcon,_=w.onItemClick,z=w.onOpenChange,j=w.onActive,L=s.useContext(dy),F=L._internalRenderSubMenuItem,W=s.useContext(SR),H=W.isSubPathKey,A=Dl(),V="".concat(E,"-submenu"),K=R||i,Y=s.useRef(),re=s.useRef(),J=u??P,ae=d??M,le=$.includes(a),te=!I&&le,q=H(T,a),X=wR(a,K,y,C),Q=X.active,Z=ut(X,XA),ne=s.useState(!1),ie=ee(ne,2),fe=ie[0],$e=ie[1],Se=function(me){K||$e(me)},oe=function(me){Se(!0),b==null||b({key:a,domEvent:me})},se=function(me){Se(!1),h==null||h({key:a,domEvent:me})},ye=s.useMemo(function(){return Q||(O!=="inline"?fe||H([N],a):!1)},[O,Q,N,fe,a,H]),ce=$R(A.length),we=function(me){K||(g==null||g({key:a,domEvent:me}),O==="inline"&&z(a,!le))},Oe=ps(function(ge){p==null||p(Kd(ge)),_(ge)}),Le=function(me){O!=="inline"&&z(a,me)},je=function(){j(a)},xe=S&&"".concat(S,"-popup"),Pe=s.useMemo(function(){return s.createElement(ER,{icon:O!=="horizontal"?ae:void 0,props:k(k({},e),{},{isOpen:te,isSubMenu:!0})},s.createElement("i",{className:"".concat(V,"-arrow")}))},[O,ae,e,te,V]),Ce=s.createElement("div",pe({role:"menuitem",style:ce,className:"".concat(V,"-title"),tabIndex:K?null:-1,ref:Y,title:typeof o=="string"?o:null,"data-menu-id":I&&S?null:S,"aria-expanded":te,"aria-haspopup":!0,"aria-controls":xe,"aria-disabled":K,onClick:we,onFocus:je},Z),o,Pe),ve=s.useRef(O);if(O!=="inline"&&A.length>1?ve.current="vertical":ve.current=O,!I){var Ee=ve.current;Ce=s.createElement(UA,{mode:Ee,prefixCls:V,visible:!l&&te&&O!=="inline",popupClassName:f,popupOffset:m,popupStyle:v,popup:s.createElement(pc,{mode:Ee==="horizontal"?"vertical":Ee},s.createElement(vy,{id:xe,ref:re},c)),disabled:K,onVisibleChange:Le},Ce)}var de=s.createElement(jo.Item,pe({ref:t,role:"none"},x,{component:"li",style:n,className:G(V,"".concat(V,"-").concat(O),r,D(D(D(D({},"".concat(V,"-open"),te),"".concat(V,"-active"),ye),"".concat(V,"-selected"),q),"".concat(V,"-disabled"),K)),onMouseEnter:oe,onMouseLeave:se}),Ce,!I&&s.createElement(GA,{id:xe,open:te,keyPath:A},c));return F&&(de=F(de,e,{selected:q,active:ye,open:te,disabled:K})),s.createElement(pc,{onItemClick:Oe,mode:O==="horizontal"?"vertical":O,itemIcon:J,expandIcon:ae},de)}),lm=s.forwardRef(function(e,t){var n=e.eventKey,r=e.children,o=Dl(n),a=py(r,o),i=im();s.useEffect(function(){if(i)return i.registerPath(n,o),function(){i.unregisterPath(n,o)}},[o]);var l;return i?l=a:l=s.createElement(YA,pe({ref:t},e),a),s.createElement(CR.Provider,{value:o},l)});function gy(e){var t=e.className,n=e.style,r=s.useContext(wo),o=r.prefixCls,a=im();return a?null:s.createElement("li",{role:"separator",className:G("".concat(o,"-item-divider"),t),style:n})}var QA=["className","title","eventKey","children"],JA=s.forwardRef(function(e,t){var n=e.className,r=e.title;e.eventKey;var o=e.children,a=ut(e,QA),i=s.useContext(wo),l=i.prefixCls,c="".concat(l,"-item-group");return s.createElement("li",pe({ref:t,role:"presentation"},a,{onClick:function(d){return d.stopPropagation()},className:G(c,n)}),s.createElement("div",{role:"presentation",className:"".concat(c,"-title"),title:typeof r=="string"?r:void 0},r),s.createElement("ul",{role:"group",className:"".concat(c,"-list")},o))}),hy=s.forwardRef(function(e,t){var n=e.eventKey,r=e.children,o=Dl(n),a=py(r,o),i=im();return i?a:s.createElement(JA,pe({ref:t},Zt(e,["warnKey"])),a)}),ZA=["label","children","key","type","extra"];function ah(e,t,n){var r=t.item,o=t.group,a=t.submenu,i=t.divider;return(e||[]).map(function(l,c){if(l&&We(l)==="object"){var u=l,d=u.label,f=u.children,m=u.key,v=u.type,p=u.extra,b=ut(u,ZA),h=m??"tmp-".concat(c);return f||v==="group"?v==="group"?s.createElement(o,pe({key:h},b,{title:d}),ah(f,t,n)):s.createElement(a,pe({key:h},b,{title:d}),ah(f,t,n)):v==="divider"?s.createElement(i,pe({key:h},b)):s.createElement(r,pe({key:h},b,{extra:p}),d,(!!p||p===0)&&s.createElement("span",{className:"".concat(n,"-item-extra")},p))}return null}).filter(function(l){return l})}function dx(e,t,n,r,o){var a=e,i=k({divider:gy,item:Fc,group:hy,submenu:lm},r);return t&&(a=ah(t,i,o)),py(a,n)}var eF=["prefixCls","rootClassName","style","className","tabIndex","items","children","direction","id","mode","inlineCollapsed","disabled","disabledOverflow","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","defaultOpenKeys","openKeys","activeKey","defaultActiveFirst","selectable","multiple","defaultSelectedKeys","selectedKeys","onSelect","onDeselect","inlineIndent","motion","defaultMotions","triggerSubMenuAction","builtinPlacements","itemIcon","expandIcon","overflowedIndicator","overflowedIndicatorPopupClassName","getPopupContainer","onClick","onOpenChange","onKeyDown","openAnimation","openTransitionName","_internalRenderMenuItem","_internalRenderSubMenuItem","_internalComponents"],Ua=[],tF=s.forwardRef(function(e,t){var n,r=e,o=r.prefixCls,a=o===void 0?"rc-menu":o,i=r.rootClassName,l=r.style,c=r.className,u=r.tabIndex,d=u===void 0?0:u,f=r.items,m=r.children,v=r.direction,p=r.id,b=r.mode,h=b===void 0?"vertical":b,g=r.inlineCollapsed,y=r.disabled,C=r.disabledOverflow,x=r.subMenuOpenDelay,S=x===void 0?.1:x,w=r.subMenuCloseDelay,E=w===void 0?.1:w,O=r.forceSubMenuRender,$=r.defaultOpenKeys,R=r.openKeys,I=r.activeKey,N=r.defaultActiveFirst,T=r.selectable,P=T===void 0?!0:T,M=r.multiple,_=M===void 0?!1:M,z=r.defaultSelectedKeys,j=r.selectedKeys,L=r.onSelect,F=r.onDeselect,W=r.inlineIndent,H=W===void 0?24:W,A=r.motion,V=r.defaultMotions,K=r.triggerSubMenuAction,Y=K===void 0?"hover":K,re=r.builtinPlacements,J=r.itemIcon,ae=r.expandIcon,le=r.overflowedIndicator,te=le===void 0?"...":le,q=r.overflowedIndicatorPopupClassName,X=r.getPopupContainer,Q=r.onClick,Z=r.onOpenChange,ne=r.onKeyDown;r.openAnimation,r.openTransitionName;var ie=r._internalRenderMenuItem,fe=r._internalRenderSubMenuItem,$e=r._internalComponents,Se=ut(r,eF),oe=s.useMemo(function(){return[dx(m,f,Ua,$e,a),dx(m,f,Ua,{},a)]},[m,f,$e]),se=ee(oe,2),ye=se[0],ce=se[1],we=s.useState(!1),Oe=ee(we,2),Le=Oe[0],je=Oe[1],xe=s.useRef(),Pe=_A(p),Ce=v==="rtl",ve=on($,{value:R,postState:function(Ze){return Ze||Ua}}),Ee=ee(ve,2),de=Ee[0],ge=Ee[1],me=function(Ze){var Ye=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;function _t(){ge(Ze),Z==null||Z(Ze)}Ye?Yr.flushSync(_t):_t()},ue=s.useState(de),Te=ee(ue,2),Qe=Te[0],pt=Te[1],gt=s.useRef(!1),ft=s.useMemo(function(){return(h==="inline"||h==="vertical")&&g?["vertical",g]:[h,!1]},[h,g]),Bt=ee(ft,2),xt=Bt[0],st=Bt[1],at=xt==="inline",Ke=s.useState(xt),Fe=ee(Ke,2),Re=Fe[0],qe=Fe[1],Je=s.useState(st),Ie=ee(Je,2),Ne=Ie[0],Xe=Ie[1];s.useEffect(function(){qe(xt),Xe(st),gt.current&&(at?ge(Qe):me(Ua))},[xt,st]);var Ge=s.useState(0),He=ee(Ge,2),et=He[0],Ue=He[1],Ve=et>=ye.length-1||Re!=="horizontal"||C;s.useEffect(function(){at&&pt(de)},[de]),s.useEffect(function(){return gt.current=!0,function(){gt.current=!1}},[]);var tt=TA(),dt=tt.registerPath,St=tt.unregisterPath,Et=tt.refreshOverflowKeys,Pt=tt.isSubPathKey,wt=tt.getKeyPath,Tt=tt.getKeys,It=tt.getSubPathKeys,Be=s.useMemo(function(){return{registerPath:dt,unregisterPath:St}},[dt,St]),Ae=s.useMemo(function(){return{isSubPathKey:Pt}},[Pt]);s.useEffect(function(){Et(Ve?Ua:ye.slice(et+1).map(function(At){return At.key}))},[et,Ve]);var De=on(I||N&&((n=ye[0])===null||n===void 0?void 0:n.key),{value:I}),ze=ee(De,2),rt=ze[0],bt=ze[1],kt=ps(function(At){bt(At)}),Ut=ps(function(){bt(void 0)});s.useImperativeHandle(t,function(){return{list:xe.current,focus:function(Ze){var Ye,_t=Tt(),Dt=rh(_t,Pe),Kt=Dt.elements,Yt=Dt.key2element,In=Dt.element2key,xn=fy(xe.current,Kt),Nn=rt??(xn[0]?In.get(xn[0]):(Ye=ye.find(function(vt){return!vt.props.disabled}))===null||Ye===void 0?void 0:Ye.key),Tn=Yt.get(Nn);if(Nn&&Tn){var An;Tn==null||(An=Tn.focus)===null||An===void 0||An.call(Tn,Ze)}}}});var nt=on(z||[],{value:j,postState:function(Ze){return Array.isArray(Ze)?Ze:Ze==null?Ua:[Ze]}}),ot=ee(nt,2),yt=ot[0],Xt=ot[1],pn=function(Ze){if(P){var Ye=Ze.key,_t=yt.includes(Ye),Dt;_?_t?Dt=yt.filter(function(Yt){return Yt!==Ye}):Dt=[].concat(he(yt),[Ye]):Dt=[Ye],Xt(Dt);var Kt=k(k({},Ze),{},{selectedKeys:Dt});_t?F==null||F(Kt):L==null||L(Kt)}!_&&de.length&&Re!=="inline"&&me(Ua)},pr=ps(function(At){Q==null||Q(Kd(At)),pn(At)}),Un=ps(function(At,Ze){var Ye=de.filter(function(Dt){return Dt!==At});if(Ze)Ye.push(At);else if(Re!=="inline"){var _t=It(At);Ye=Ye.filter(function(Dt){return!_t.has(Dt)})}Do(de,Ye,!0)||me(Ye,!0)}),Pn=function(Ze,Ye){var _t=Ye??!de.includes(Ze);Un(Ze,_t)},gr=PA(Re,rt,Ce,Pe,xe,Tt,wt,bt,Pn,ne);s.useEffect(function(){je(!0)},[]);var or=s.useMemo(function(){return{_internalRenderMenuItem:ie,_internalRenderSubMenuItem:fe}},[ie,fe]),kn=Re!=="horizontal"||C?ye:ye.map(function(At,Ze){return s.createElement(pc,{key:At.key,overflowDisabled:Ze>et},At)}),hr=s.createElement(jo,pe({id:p,ref:xe,prefixCls:"".concat(a,"-overflow"),component:"ul",itemComponent:Fc,className:G(a,"".concat(a,"-root"),"".concat(a,"-").concat(Re),c,D(D({},"".concat(a,"-inline-collapsed"),Ne),"".concat(a,"-rtl"),Ce),i),dir:v,style:l,role:"menu",tabIndex:d,data:kn,renderRawItem:function(Ze){return Ze},renderRawRest:function(Ze){var Ye=Ze.length,_t=Ye?ye.slice(-Ye):null;return s.createElement(lm,{eventKey:oh,title:te,disabled:Ve,internalPopupClose:Ye===0,popupClassName:q},_t)},maxCount:Re!=="horizontal"||C?jo.INVALIDATE:jo.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:function(Ze){Ue(Ze)},onKeyDown:gr},Se));return s.createElement(dy.Provider,{value:or},s.createElement(gR.Provider,{value:Pe},s.createElement(pc,{prefixCls:a,rootClassName:i,mode:Re,openKeys:de,rtl:Ce,disabled:y,motion:Le?A:null,defaultMotions:Le?V:null,activeKey:rt,onActive:kt,onInactive:Ut,selectedKeys:yt,inlineIndent:H,subMenuOpenDelay:S,subMenuCloseDelay:E,forceSubMenuRender:O,builtinPlacements:re,triggerSubMenuAction:Y,getPopupContainer:X,itemIcon:J,expandIcon:ae,onItemClick:pr,onOpenChange:Un},s.createElement(SR.Provider,{value:Ae},hr),s.createElement("div",{style:{display:"none"},"aria-hidden":!0},s.createElement(bR.Provider,{value:Be},ce)))))}),Bl=tF;Bl.Item=Fc;Bl.SubMenu=lm;Bl.ItemGroup=hy;Bl.Divider=gy;var nF={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"},rF=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:nF}))},oF=s.forwardRef(rF);const RR=s.createContext({siderHook:{addSider:()=>null,removeSider:()=>null}}),aF=e=>{const{antCls:t,componentCls:n,colorText:r,footerBg:o,headerHeight:a,headerPadding:i,headerColor:l,footerPadding:c,fontSize:u,bodyBg:d,headerBg:f}=e;return{[n]:{display:"flex",flex:"auto",flexDirection:"column",minHeight:0,background:d,"&, *":{boxSizing:"border-box"},[`&${n}-has-sider`]:{flexDirection:"row",[`> ${n}, > ${n}-content`]:{width:0}},[`${n}-header, &${n}-footer`]:{flex:"0 0 auto"},"&-rtl":{direction:"rtl"}},[`${n}-header`]:{height:a,padding:i,color:l,lineHeight:U(a),background:f,[`${t}-menu`]:{lineHeight:"inherit"}},[`${n}-footer`]:{padding:c,color:r,fontSize:u,background:o},[`${n}-content`]:{flex:"auto",color:r,minHeight:0}}},PR=e=>{const{colorBgLayout:t,controlHeight:n,controlHeightLG:r,colorText:o,controlHeightSM:a,marginXXS:i,colorTextLightSolid:l,colorBgContainer:c}=e,u=r*1.25;return{colorBgHeader:"#001529",colorBgBody:t,colorBgTrigger:"#002140",bodyBg:t,headerBg:"#001529",headerHeight:n*2,headerPadding:`0 ${u}px`,headerColor:o,footerPadding:`${a}px ${u}px`,footerBg:t,siderBg:"#001529",triggerHeight:r+i*2,triggerBg:"#002140",triggerColor:l,zeroTriggerWidth:r,zeroTriggerHeight:r,lightSiderBg:c,lightTriggerBg:c,lightTriggerColor:o}},IR=[["colorBgBody","bodyBg"],["colorBgHeader","headerBg"],["colorBgTrigger","triggerBg"]],NR=Wt("Layout",e=>[aF(e)],PR,{deprecatedTokens:IR}),iF=e=>{const{componentCls:t,siderBg:n,motionDurationMid:r,motionDurationSlow:o,antCls:a,triggerHeight:i,triggerColor:l,triggerBg:c,headerHeight:u,zeroTriggerWidth:d,zeroTriggerHeight:f,borderRadiusLG:m,lightSiderBg:v,lightTriggerColor:p,lightTriggerBg:b,bodyBg:h}=e;return{[t]:{position:"relative",minWidth:0,background:n,transition:`all ${r}, background 0s`,"&-has-trigger":{paddingBottom:i},"&-right":{order:1},[`${t}-children`]:{height:"100%",marginTop:-.1,paddingTop:.1,[`${a}-menu${a}-menu-inline-collapsed`]:{width:"auto"}},[`&-zero-width ${t}-children`]:{overflow:"hidden"},[`${t}-trigger`]:{position:"fixed",bottom:0,zIndex:1,height:i,color:l,lineHeight:U(i),textAlign:"center",background:c,cursor:"pointer",transition:`all ${r}`},[`${t}-zero-width-trigger`]:{position:"absolute",top:u,insetInlineEnd:e.calc(d).mul(-1).equal(),zIndex:1,width:d,height:f,color:l,fontSize:e.fontSizeXL,display:"flex",alignItems:"center",justifyContent:"center",background:n,borderRadius:`0 ${U(m)} ${U(m)} 0`,cursor:"pointer",transition:`background ${o} ease`,"&::after":{position:"absolute",inset:0,background:"transparent",transition:`all ${o}`,content:'""'},"&:hover::after":{background:"rgba(255, 255, 255, 0.2)"},"&-right":{insetInlineStart:e.calc(d).mul(-1).equal(),borderRadius:`${U(m)} 0 0 ${U(m)}`}},"&-light":{background:v,[`${t}-trigger`]:{color:p,background:b},[`${t}-zero-width-trigger`]:{color:p,background:b,border:`1px solid ${h}`,borderInlineStart:0}}}}},lF=Wt(["Layout","Sider"],e=>[iF(e)],PR,{deprecatedTokens:IR});var sF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o!Number.isNaN(Number.parseFloat(e))&&isFinite(e),sm=s.createContext({}),uF=(()=>{let e=0;return(t="")=>(e+=1,`${t}${e}`)})(),TR=s.forwardRef((e,t)=>{const{prefixCls:n,className:r,trigger:o,children:a,defaultCollapsed:i=!1,theme:l="dark",style:c={},collapsible:u=!1,reverseArrow:d=!1,width:f=200,collapsedWidth:m=80,zeroWidthTriggerStyle:v,breakpoint:p,onCollapse:b,onBreakpoint:h}=e,g=sF(e,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),{siderHook:y}=s.useContext(RR),[C,x]=s.useState("collapsed"in e?e.collapsed:i),[S,w]=s.useState(!1);s.useEffect(()=>{"collapsed"in e&&x(e.collapsed)},[e.collapsed]);const E=(J,ae)=>{"collapsed"in e||x(J),b==null||b(J,ae)},{getPrefixCls:O,direction:$}=s.useContext(lt),R=O("layout-sider",n),[I,N,T]=lF(R),P=s.useRef(null);P.current=J=>{w(J.matches),h==null||h(J.matches),C!==J.matches&&E(J.matches,"responsive")},s.useEffect(()=>{function J(le){var te;return(te=P.current)===null||te===void 0?void 0:te.call(P,le)}let ae;return typeof(window==null?void 0:window.matchMedia)<"u"&&p&&p in fx&&(ae=window.matchMedia(`screen and (max-width: ${fx[p]})`),oR(ae,J),J(ae)),()=>{aR(ae,J)}},[p]),s.useEffect(()=>{const J=uF("ant-sider-");return y.addSider(J),()=>y.removeSider(J)},[]);const M=()=>{E(!C,"clickTrigger")},_=Zt(g,["collapsed"]),z=C?m:f,j=cF(z)?`${z}px`:String(z),L=parseFloat(String(m||0))===0?s.createElement("span",{onClick:M,className:G(`${R}-zero-width-trigger`,`${R}-zero-width-trigger-${d?"right":"left"}`),style:v},o||s.createElement(oF,null)):null,F=$==="rtl"==!d,A={expanded:F?s.createElement(uc,null):s.createElement(vc,null),collapsed:F?s.createElement(vc,null):s.createElement(uc,null)}[C?"collapsed":"expanded"],V=o!==null?L||s.createElement("div",{className:`${R}-trigger`,onClick:M,style:{width:j}},o||A):null,K=Object.assign(Object.assign({},c),{flex:`0 0 ${j}`,maxWidth:j,minWidth:j,width:j}),Y=G(R,`${R}-${l}`,{[`${R}-collapsed`]:!!C,[`${R}-has-trigger`]:u&&o!==null&&!L,[`${R}-below`]:!!S,[`${R}-zero-width`]:parseFloat(j)===0},r,N,T),re=s.useMemo(()=>({siderCollapsed:C}),[C]);return I(s.createElement(sm.Provider,{value:re},s.createElement("aside",Object.assign({className:Y},_,{style:K,ref:t}),s.createElement("div",{className:`${R}-children`},a),u||S&&L?V:null)))});var dF={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"},fF=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:dF}))},yy=s.forwardRef(fF);const Ud=s.createContext({prefixCls:"",firstLevel:!0,inlineCollapsed:!1});var mF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:t,className:n,dashed:r}=e,o=mF(e,["prefixCls","className","dashed"]),{getPrefixCls:a}=s.useContext(lt),i=a("menu",t),l=G({[`${i}-item-divider-dashed`]:!!r},n);return s.createElement(gy,Object.assign({className:l},o))},_R=e=>{var t;const{className:n,children:r,icon:o,title:a,danger:i,extra:l}=e,{prefixCls:c,firstLevel:u,direction:d,disableMenuItemTitleTooltip:f,inlineCollapsed:m}=s.useContext(Ud),v=C=>{const x=r==null?void 0:r[0],S=s.createElement("span",{className:G(`${c}-title-content`,{[`${c}-title-content-with-extra`]:!!l||l===0})},r);return(!o||s.isValidElement(r)&&r.type==="span")&&r&&C&&u&&typeof x=="string"?s.createElement("div",{className:`${c}-inline-collapsed-noicon`},x.charAt(0)):S},{siderCollapsed:p}=s.useContext(sm);let b=a;typeof a>"u"?b=u?r:"":a===!1&&(b="");const h={title:b};!p&&!m&&(h.title=null,h.open=!1);const g=ur(r).length;let y=s.createElement(Fc,Object.assign({},Zt(e,["title","icon","danger"]),{className:G({[`${c}-item-danger`]:i,[`${c}-item-only-child`]:(o?g+1:g)===1},n),title:typeof a=="string"?a:void 0}),nr(o,{className:G(s.isValidElement(o)?(t=o.props)===null||t===void 0?void 0:t.className:void 0,`${c}-item-icon`)}),v(m));return f||(y=s.createElement(xo,Object.assign({},h,{placement:d==="rtl"?"left":"right",classNames:{root:`${c}-inline-collapsed-tooltip`}}),y)),y};var vF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{children:n}=e,r=vF(e,["children"]),o=s.useContext(Gd),a=s.useMemo(()=>Object.assign(Object.assign({},o),r),[o,r.prefixCls,r.mode,r.selectable,r.rootClassName]),i=p_(n),l=na(t,i?Ci(n):null);return s.createElement(Gd.Provider,{value:a},s.createElement(dc,{space:!0},i?s.cloneElement(n,{ref:l}):n))}),pF=e=>{const{componentCls:t,motionDurationSlow:n,horizontalLineHeight:r,colorSplit:o,lineWidth:a,lineType:i,itemPaddingInline:l}=e;return{[`${t}-horizontal`]:{lineHeight:r,border:0,borderBottom:`${U(a)} ${i} ${o}`,boxShadow:"none","&::after":{display:"block",clear:"both",height:0,content:'"\\20"'},[`${t}-item, ${t}-submenu`]:{position:"relative",display:"inline-block",verticalAlign:"bottom",paddingInline:l},[`> ${t}-item:hover, + > ${t}-item-active, + > ${t}-submenu ${t}-submenu-title:hover`]:{backgroundColor:"transparent"},[`${t}-item, ${t}-submenu-title`]:{transition:[`border-color ${n}`,`background ${n}`].join(",")},[`${t}-submenu-arrow`]:{display:"none"}}}},gF=({componentCls:e,menuArrowOffset:t,calc:n})=>({[`${e}-rtl`]:{direction:"rtl"},[`${e}-submenu-rtl`]:{transformOrigin:"100% 0"},[`${e}-rtl${e}-vertical, + ${e}-submenu-rtl ${e}-vertical`]:{[`${e}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(${U(n(t).mul(-1).equal())})`},"&::after":{transform:`rotate(45deg) translateY(${U(t)})`}}}}),mx=e=>Object.assign({},ko(e)),vx=(e,t)=>{const{componentCls:n,itemColor:r,itemSelectedColor:o,subMenuItemSelectedColor:a,groupTitleColor:i,itemBg:l,subMenuItemBg:c,itemSelectedBg:u,activeBarHeight:d,activeBarWidth:f,activeBarBorderWidth:m,motionDurationSlow:v,motionEaseInOut:p,motionEaseOut:b,itemPaddingInline:h,motionDurationMid:g,itemHoverColor:y,lineType:C,colorSplit:x,itemDisabledColor:S,dangerItemColor:w,dangerItemHoverColor:E,dangerItemSelectedColor:O,dangerItemActiveBg:$,dangerItemSelectedBg:R,popupBg:I,itemHoverBg:N,itemActiveBg:T,menuSubMenuBg:P,horizontalItemSelectedColor:M,horizontalItemSelectedBg:_,horizontalItemBorderRadius:z,horizontalItemHoverBg:j}=e;return{[`${n}-${t}, ${n}-${t} > ${n}`]:{color:r,background:l,[`&${n}-root:focus-visible`]:Object.assign({},mx(e)),[`${n}-item`]:{"&-group-title, &-extra":{color:i}},[`${n}-submenu-selected > ${n}-submenu-title`]:{color:a},[`${n}-item, ${n}-submenu-title`]:{color:r,[`&:not(${n}-item-disabled):focus-visible`]:Object.assign({},mx(e))},[`${n}-item-disabled, ${n}-submenu-disabled`]:{color:`${S} !important`},[`${n}-item:not(${n}-item-selected):not(${n}-submenu-selected)`]:{[`&:hover, > ${n}-submenu-title:hover`]:{color:y}},[`&:not(${n}-horizontal)`]:{[`${n}-item:not(${n}-item-selected)`]:{"&:hover":{backgroundColor:N},"&:active":{backgroundColor:T}},[`${n}-submenu-title`]:{"&:hover":{backgroundColor:N},"&:active":{backgroundColor:T}}},[`${n}-item-danger`]:{color:w,[`&${n}-item:hover`]:{[`&:not(${n}-item-selected):not(${n}-submenu-selected)`]:{color:E}},[`&${n}-item:active`]:{background:$}},[`${n}-item a`]:{"&, &:hover":{color:"inherit"}},[`${n}-item-selected`]:{color:o,[`&${n}-item-danger`]:{color:O},"a, a:hover":{color:"inherit"}},[`& ${n}-item-selected`]:{backgroundColor:u,[`&${n}-item-danger`]:{backgroundColor:R}},[`&${n}-submenu > ${n}`]:{backgroundColor:P},[`&${n}-popup > ${n}`]:{backgroundColor:I},[`&${n}-submenu-popup > ${n}`]:{backgroundColor:I},[`&${n}-horizontal`]:Object.assign(Object.assign({},t==="dark"?{borderBottom:0}:{}),{[`> ${n}-item, > ${n}-submenu`]:{top:m,marginTop:e.calc(m).mul(-1).equal(),marginBottom:0,borderRadius:z,"&::after":{position:"absolute",insetInline:h,bottom:0,borderBottom:`${U(d)} solid transparent`,transition:`border-color ${v} ${p}`,content:'""'},"&:hover, &-active, &-open":{background:j,"&::after":{borderBottomWidth:d,borderBottomColor:M}},"&-selected":{color:M,backgroundColor:_,"&:hover":{backgroundColor:_},"&::after":{borderBottomWidth:d,borderBottomColor:M}}}}),[`&${n}-root`]:{[`&${n}-inline, &${n}-vertical`]:{borderInlineEnd:`${U(m)} ${C} ${x}`}},[`&${n}-inline`]:{[`${n}-sub${n}-inline`]:{background:c},[`${n}-item`]:{position:"relative","&::after":{position:"absolute",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${U(f)} solid ${o}`,transform:"scaleY(0.0001)",opacity:0,transition:[`transform ${g} ${b}`,`opacity ${g} ${b}`].join(","),content:'""'},[`&${n}-item-danger`]:{"&::after":{borderInlineEndColor:O}}},[`${n}-selected, ${n}-item-selected`]:{"&::after":{transform:"scaleY(1)",opacity:1,transition:[`transform ${g} ${p}`,`opacity ${g} ${p}`].join(",")}}}}}},px=e=>{const{componentCls:t,itemHeight:n,itemMarginInline:r,padding:o,menuArrowSize:a,marginXS:i,itemMarginBlock:l,itemWidth:c,itemPaddingInline:u}=e,d=e.calc(a).add(o).add(i).equal();return{[`${t}-item`]:{position:"relative",overflow:"hidden"},[`${t}-item, ${t}-submenu-title`]:{height:n,lineHeight:U(n),paddingInline:u,overflow:"hidden",textOverflow:"ellipsis",marginInline:r,marginBlock:l,width:c},[`> ${t}-item, + > ${t}-submenu > ${t}-submenu-title`]:{height:n,lineHeight:U(n)},[`${t}-item-group-list ${t}-submenu-title, + ${t}-submenu-title`]:{paddingInlineEnd:d}}},hF=e=>{const{componentCls:t,iconCls:n,itemHeight:r,colorTextLightSolid:o,dropdownWidth:a,controlHeightLG:i,motionEaseOut:l,paddingXL:c,itemMarginInline:u,fontSizeLG:d,motionDurationFast:f,motionDurationSlow:m,paddingXS:v,boxShadowSecondary:p,collapsedWidth:b,collapsedIconSize:h}=e,g={height:r,lineHeight:U(r),listStylePosition:"inside",listStyleType:"disc"};return[{[t]:{"&-inline, &-vertical":Object.assign({[`&${t}-root`]:{boxShadow:"none"}},px(e))},[`${t}-submenu-popup`]:{[`${t}-vertical`]:Object.assign(Object.assign({},px(e)),{boxShadow:p})}},{[`${t}-submenu-popup ${t}-vertical${t}-sub`]:{minWidth:a,maxHeight:`calc(100vh - ${U(e.calc(i).mul(2.5).equal())})`,padding:"0",overflow:"hidden",borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:"hidden",overflowY:"auto"}}},{[`${t}-inline`]:{width:"100%",[`&${t}-root`]:{[`${t}-item, ${t}-submenu-title`]:{display:"flex",alignItems:"center",transition:[`border-color ${m}`,`background ${m}`,`padding ${f} ${l}`].join(","),[`> ${t}-title-content`]:{flex:"auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},"> *":{flex:"none"}}},[`${t}-sub${t}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:"none",[`& > ${t}-submenu > ${t}-submenu-title`]:g,[`& ${t}-item-group-title`]:{paddingInlineStart:c}},[`${t}-item`]:g}},{[`${t}-inline-collapsed`]:{width:b,[`&${t}-root`]:{[`${t}-item, ${t}-submenu ${t}-submenu-title`]:{[`> ${t}-inline-collapsed-noicon`]:{fontSize:d,textAlign:"center"}}},[`> ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-item, + > ${t}-item-group > ${t}-item-group-list > ${t}-submenu > ${t}-submenu-title, + > ${t}-submenu > ${t}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${U(e.calc(h).div(2).equal())} - ${U(u)})`,textOverflow:"clip",[` + ${t}-submenu-arrow, + ${t}-submenu-expand-icon + `]:{opacity:0},[`${t}-item-icon, ${n}`]:{margin:0,fontSize:h,lineHeight:U(r),"+ span":{display:"inline-block",opacity:0}}},[`${t}-item-icon, ${n}`]:{display:"inline-block"},"&-tooltip":{pointerEvents:"none",[`${t}-item-icon, ${n}`]:{display:"none"},"a, a:hover":{color:o}},[`${t}-item-group-title`]:Object.assign(Object.assign({},Bo),{paddingInline:v})}}]},gx=e=>{const{componentCls:t,motionDurationSlow:n,motionDurationMid:r,motionEaseInOut:o,motionEaseOut:a,iconCls:i,iconSize:l,iconMarginInlineEnd:c}=e;return{[`${t}-item, ${t}-submenu-title`]:{position:"relative",display:"block",margin:0,whiteSpace:"nowrap",cursor:"pointer",transition:[`border-color ${n}`,`background ${n}`,`padding calc(${n} + 0.1s) ${o}`].join(","),[`${t}-item-icon, ${i}`]:{minWidth:l,fontSize:l,transition:[`font-size ${r} ${a}`,`margin ${n} ${o}`,`color ${n}`].join(","),"+ span":{marginInlineStart:c,opacity:1,transition:[`opacity ${n} ${o}`,`margin ${n}`,`color ${n}`].join(",")}},[`${t}-item-icon`]:Object.assign({},Nc()),[`&${t}-item-only-child`]:{[`> ${i}, > ${t}-item-icon`]:{marginInlineEnd:0}}},[`${t}-item-disabled, ${t}-submenu-disabled`]:{background:"none !important",cursor:"not-allowed","&::after":{borderColor:"transparent !important"},a:{color:"inherit !important",cursor:"not-allowed",pointerEvents:"none"},[`> ${t}-submenu-title`]:{color:"inherit !important",cursor:"not-allowed"}}}},hx=e=>{const{componentCls:t,motionDurationSlow:n,motionEaseInOut:r,borderRadius:o,menuArrowSize:a,menuArrowOffset:i}=e;return{[`${t}-submenu`]:{"&-expand-icon, &-arrow":{position:"absolute",top:"50%",insetInlineEnd:e.margin,width:a,color:"currentcolor",transform:"translateY(-50%)",transition:`transform ${n} ${r}, opacity ${n}`},"&-arrow":{"&::before, &::after":{position:"absolute",width:e.calc(a).mul(.6).equal(),height:e.calc(a).mul(.15).equal(),backgroundColor:"currentcolor",borderRadius:o,transition:[`background ${n} ${r}`,`transform ${n} ${r}`,`top ${n} ${r}`,`color ${n} ${r}`].join(","),content:'""'},"&::before":{transform:`rotate(45deg) translateY(${U(e.calc(i).mul(-1).equal())})`},"&::after":{transform:`rotate(-45deg) translateY(${U(i)})`}}}}},yF=e=>{const{antCls:t,componentCls:n,fontSize:r,motionDurationSlow:o,motionDurationMid:a,motionEaseInOut:i,paddingXS:l,padding:c,colorSplit:u,lineWidth:d,zIndexPopup:f,borderRadiusLG:m,subMenuItemBorderRadius:v,menuArrowSize:p,menuArrowOffset:b,lineType:h,groupTitleLineHeight:g,groupTitleFontSize:y}=e;return[{"":{[n]:Object.assign(Object.assign({},Co()),{"&-hidden":{display:"none"}})},[`${n}-submenu-hidden`]:{display:"none"}},{[n]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Jt(e)),Co()),{marginBottom:0,paddingInlineStart:0,fontSize:r,lineHeight:0,listStyle:"none",outline:"none",transition:`width ${o} cubic-bezier(0.2, 0, 0, 1) 0s`,"ul, ol":{margin:0,padding:0,listStyle:"none"},"&-overflow":{display:"flex",[`${n}-item`]:{flex:"none"}},[`${n}-item, ${n}-submenu, ${n}-submenu-title`]:{borderRadius:e.itemBorderRadius},[`${n}-item-group-title`]:{padding:`${U(l)} ${U(c)}`,fontSize:y,lineHeight:g,transition:`all ${o}`},[`&-horizontal ${n}-submenu`]:{transition:[`border-color ${o} ${i}`,`background ${o} ${i}`].join(",")},[`${n}-submenu, ${n}-submenu-inline`]:{transition:[`border-color ${o} ${i}`,`background ${o} ${i}`,`padding ${a} ${i}`].join(",")},[`${n}-submenu ${n}-sub`]:{cursor:"initial",transition:[`background ${o} ${i}`,`padding ${o} ${i}`].join(",")},[`${n}-title-content`]:{transition:`color ${o}`,"&-with-extra":{display:"inline-flex",alignItems:"center",width:"100%"},[`> ${t}-typography-ellipsis-single-line`]:{display:"inline",verticalAlign:"unset"},[`${n}-item-extra`]:{marginInlineStart:"auto",paddingInlineStart:e.padding}},[`${n}-item a`]:{"&::before":{position:"absolute",inset:0,backgroundColor:"transparent",content:'""'}},[`${n}-item-divider`]:{overflow:"hidden",lineHeight:0,borderColor:u,borderStyle:h,borderWidth:0,borderTopWidth:d,marginBlock:d,padding:0,"&-dashed":{borderStyle:"dashed"}}}),gx(e)),{[`${n}-item-group`]:{[`${n}-item-group-list`]:{margin:0,padding:0,[`${n}-item, ${n}-submenu-title`]:{paddingInline:`${U(e.calc(r).mul(2).equal())} ${U(c)}`}}},"&-submenu":{"&-popup":{position:"absolute",zIndex:f,borderRadius:m,boxShadow:"none",transformOrigin:"0 0",[`&${n}-submenu`]:{background:"transparent"},"&::before":{position:"absolute",inset:0,zIndex:-1,width:"100%",height:"100%",opacity:0,content:'""'},[`> ${n}`]:Object.assign(Object.assign(Object.assign({borderRadius:m},gx(e)),hx(e)),{[`${n}-item, ${n}-submenu > ${n}-submenu-title`]:{borderRadius:v},[`${n}-submenu-title::after`]:{transition:`transform ${o} ${i}`}})},"\n &-placement-leftTop,\n &-placement-bottomRight,\n ":{transformOrigin:"100% 0"},"\n &-placement-leftBottom,\n &-placement-topRight,\n ":{transformOrigin:"100% 100%"},"\n &-placement-rightBottom,\n &-placement-topLeft,\n ":{transformOrigin:"0 100%"},"\n &-placement-bottomLeft,\n &-placement-rightTop,\n ":{transformOrigin:"0 0"},"\n &-placement-leftTop,\n &-placement-leftBottom\n ":{paddingInlineEnd:e.paddingXS},"\n &-placement-rightTop,\n &-placement-rightBottom\n ":{paddingInlineStart:e.paddingXS},"\n &-placement-topRight,\n &-placement-topLeft\n ":{paddingBottom:e.paddingXS},"\n &-placement-bottomRight,\n &-placement-bottomLeft\n ":{paddingTop:e.paddingXS}}}),hx(e)),{[`&-inline-collapsed ${n}-submenu-arrow, + &-inline ${n}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${U(b)})`},"&::after":{transform:`rotate(45deg) translateX(${U(e.calc(b).mul(-1).equal())})`}},[`${n}-submenu-open${n}-submenu-inline > ${n}-submenu-title > ${n}-submenu-arrow`]:{transform:`translateY(${U(e.calc(p).mul(.2).mul(-1).equal())})`,"&::after":{transform:`rotate(-45deg) translateX(${U(e.calc(b).mul(-1).equal())})`},"&::before":{transform:`rotate(45deg) translateX(${U(b)})`}}})},{[`${t}-layout-header`]:{[n]:{lineHeight:"inherit"}}}]},bF=e=>{var t,n,r;const{colorPrimary:o,colorError:a,colorTextDisabled:i,colorErrorBg:l,colorText:c,colorTextDescription:u,colorBgContainer:d,colorFillAlter:f,colorFillContent:m,lineWidth:v,lineWidthBold:p,controlItemBgActive:b,colorBgTextHover:h,controlHeightLG:g,lineHeight:y,colorBgElevated:C,marginXXS:x,padding:S,fontSize:w,controlHeightSM:E,fontSizeLG:O,colorTextLightSolid:$,colorErrorHover:R}=e,I=(t=e.activeBarWidth)!==null&&t!==void 0?t:0,N=(n=e.activeBarBorderWidth)!==null&&n!==void 0?n:v,T=(r=e.itemMarginInline)!==null&&r!==void 0?r:e.marginXXS,P=new zt($).setA(.65).toRgbString();return{dropdownWidth:160,zIndexPopup:e.zIndexPopupBase+50,radiusItem:e.borderRadiusLG,itemBorderRadius:e.borderRadiusLG,radiusSubMenuItem:e.borderRadiusSM,subMenuItemBorderRadius:e.borderRadiusSM,colorItemText:c,itemColor:c,colorItemTextHover:c,itemHoverColor:c,colorItemTextHoverHorizontal:o,horizontalItemHoverColor:o,colorGroupTitle:u,groupTitleColor:u,colorItemTextSelected:o,itemSelectedColor:o,subMenuItemSelectedColor:o,colorItemTextSelectedHorizontal:o,horizontalItemSelectedColor:o,colorItemBg:d,itemBg:d,colorItemBgHover:h,itemHoverBg:h,colorItemBgActive:m,itemActiveBg:b,colorSubItemBg:f,subMenuItemBg:f,colorItemBgSelected:b,itemSelectedBg:b,colorItemBgSelectedHorizontal:"transparent",horizontalItemSelectedBg:"transparent",colorActiveBarWidth:0,activeBarWidth:I,colorActiveBarHeight:p,activeBarHeight:p,colorActiveBarBorderSize:v,activeBarBorderWidth:N,colorItemTextDisabled:i,itemDisabledColor:i,colorDangerItemText:a,dangerItemColor:a,colorDangerItemTextHover:a,dangerItemHoverColor:a,colorDangerItemTextSelected:a,dangerItemSelectedColor:a,colorDangerItemBgActive:l,dangerItemActiveBg:l,colorDangerItemBgSelected:l,dangerItemSelectedBg:l,itemMarginInline:T,horizontalItemBorderRadius:0,horizontalItemHoverBg:"transparent",itemHeight:g,groupTitleLineHeight:y,collapsedWidth:g*2,popupBg:C,itemMarginBlock:x,itemPaddingInline:S,horizontalLineHeight:`${g*1.15}px`,iconSize:w,iconMarginInlineEnd:E-w,collapsedIconSize:O,groupTitleFontSize:w,darkItemDisabledColor:new zt($).setA(.25).toRgbString(),darkItemColor:P,darkDangerItemColor:a,darkItemBg:"#001529",darkPopupBg:"#001529",darkSubMenuItemBg:"#000c17",darkItemSelectedColor:$,darkItemSelectedBg:o,darkDangerItemSelectedBg:a,darkItemHoverBg:"transparent",darkGroupTitleColor:P,darkItemHoverColor:$,darkDangerItemHoverColor:R,darkDangerItemSelectedColor:$,darkDangerItemActiveBg:a,itemWidth:I?`calc(100% + ${N}px)`:`calc(100% - ${T*2}px)`}},CF=(e,t=e,n=!0)=>Wt("Menu",o=>{const{colorBgElevated:a,controlHeightLG:i,fontSize:l,darkItemColor:c,darkDangerItemColor:u,darkItemBg:d,darkSubMenuItemBg:f,darkItemSelectedColor:m,darkItemSelectedBg:v,darkDangerItemSelectedBg:p,darkItemHoverBg:b,darkGroupTitleColor:h,darkItemHoverColor:g,darkItemDisabledColor:y,darkDangerItemHoverColor:C,darkDangerItemSelectedColor:x,darkDangerItemActiveBg:S,popupBg:w,darkPopupBg:E}=o,O=o.calc(l).div(7).mul(5).equal(),$=Rt(o,{menuArrowSize:O,menuHorizontalHeight:o.calc(i).mul(1.15).equal(),menuArrowOffset:o.calc(O).mul(.25).equal(),menuSubMenuBg:a,calc:o.calc,popupBg:w}),R=Rt($,{itemColor:c,itemHoverColor:g,groupTitleColor:h,itemSelectedColor:m,subMenuItemSelectedColor:m,itemBg:d,popupBg:E,subMenuItemBg:f,itemActiveBg:"transparent",itemSelectedBg:v,activeBarHeight:0,activeBarBorderWidth:0,itemHoverBg:b,itemDisabledColor:y,dangerItemColor:u,dangerItemHoverColor:C,dangerItemSelectedColor:x,dangerItemActiveBg:S,dangerItemSelectedBg:p,menuSubMenuBg:f,horizontalItemSelectedColor:m,horizontalItemSelectedBg:v});return[yF($),pF($),hF($),vx($,"light"),vx(R,"dark"),gF($),V0($),ja($,"slide-up"),ja($,"slide-down"),jc($,"zoom-big")]},bF,{deprecatedTokens:[["colorGroupTitle","groupTitleColor"],["radiusItem","itemBorderRadius"],["radiusSubMenuItem","subMenuItemBorderRadius"],["colorItemText","itemColor"],["colorItemTextHover","itemHoverColor"],["colorItemTextHoverHorizontal","horizontalItemHoverColor"],["colorItemTextSelected","itemSelectedColor"],["colorItemTextSelectedHorizontal","horizontalItemSelectedColor"],["colorItemTextDisabled","itemDisabledColor"],["colorDangerItemText","dangerItemColor"],["colorDangerItemTextHover","dangerItemHoverColor"],["colorDangerItemTextSelected","dangerItemSelectedColor"],["colorDangerItemBgActive","dangerItemActiveBg"],["colorDangerItemBgSelected","dangerItemSelectedBg"],["colorItemBg","itemBg"],["colorItemBgHover","itemHoverBg"],["colorSubItemBg","subMenuItemBg"],["colorItemBgActive","itemActiveBg"],["colorItemBgSelectedHorizontal","horizontalItemSelectedBg"],["colorActiveBarWidth","activeBarWidth"],["colorActiveBarHeight","activeBarHeight"],["colorActiveBarBorderSize","activeBarBorderWidth"],["colorItemBgSelected","itemSelectedBg"]],injectStyle:n,unitless:{groupTitleLineHeight:!0}})(e,t),jR=e=>{var t;const{popupClassName:n,icon:r,title:o,theme:a}=e,i=s.useContext(Ud),{prefixCls:l,inlineCollapsed:c,theme:u}=i,d=Dl();let f;if(!r)f=c&&!d.length&&o&&typeof o=="string"?s.createElement("div",{className:`${l}-inline-collapsed-noicon`},o.charAt(0)):s.createElement("span",{className:`${l}-title-content`},o);else{const p=s.isValidElement(o)&&o.type==="span";f=s.createElement(s.Fragment,null,nr(r,{className:G(s.isValidElement(r)?(t=r.props)===null||t===void 0?void 0:t.className:void 0,`${l}-item-icon`)}),p?o:s.createElement("span",{className:`${l}-title-content`},o))}const m=s.useMemo(()=>Object.assign(Object.assign({},i),{firstLevel:!1}),[i]),[v]=_c("Menu");return s.createElement(Ud.Provider,{value:m},s.createElement(lm,Object.assign({},Zt(e,["icon"]),{title:f,popupClassName:G(l,n,`${l}-${a||u}`),popupStyle:Object.assign({zIndex:v},e.popupStyle)})))};var SF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n;const r=s.useContext(Gd),o=r||{},{getPrefixCls:a,getPopupContainer:i,direction:l,menu:c}=s.useContext(lt),u=a(),{prefixCls:d,className:f,style:m,theme:v="light",expandIcon:p,_internalDisableMenuItemTitleTooltip:b,inlineCollapsed:h,siderCollapsed:g,rootClassName:y,mode:C,selectable:x,onClick:S,overflowedIndicatorPopupClassName:w}=e,E=SF(e,["prefixCls","className","style","theme","expandIcon","_internalDisableMenuItemTitleTooltip","inlineCollapsed","siderCollapsed","rootClassName","mode","selectable","onClick","overflowedIndicatorPopupClassName"]),O=Zt(E,["collapsedWidth"]);(n=o.validator)===null||n===void 0||n.call(o,{mode:C});const $=Vt((...H)=>{var A;S==null||S.apply(void 0,H),(A=o.onClick)===null||A===void 0||A.call(o)}),R=o.mode||C,I=x??o.selectable,N=h??g,T={horizontal:{motionName:`${u}-slide-up`},inline:F0(u),other:{motionName:`${u}-zoom-big`}},P=a("menu",d||o.prefixCls),M=mr(P),[_,z,j]=CF(P,M,!r),L=G(`${P}-${v}`,c==null?void 0:c.className,f),F=s.useMemo(()=>{var H,A;if(typeof p=="function"||Mv(p))return p||null;if(typeof o.expandIcon=="function"||Mv(o.expandIcon))return o.expandIcon||null;if(typeof(c==null?void 0:c.expandIcon)=="function"||Mv(c==null?void 0:c.expandIcon))return(c==null?void 0:c.expandIcon)||null;const V=(H=p??(o==null?void 0:o.expandIcon))!==null&&H!==void 0?H:c==null?void 0:c.expandIcon;return nr(V,{className:G(`${P}-submenu-expand-icon`,s.isValidElement(V)?(A=V.props)===null||A===void 0?void 0:A.className:void 0)})},[p,o==null?void 0:o.expandIcon,c==null?void 0:c.expandIcon,P]),W=s.useMemo(()=>({prefixCls:P,inlineCollapsed:N||!1,direction:l,firstLevel:!0,theme:v,mode:R,disableMenuItemTitleTooltip:b}),[P,N,l,b,v]);return _(s.createElement(Gd.Provider,{value:null},s.createElement(Ud.Provider,{value:W},s.createElement(Bl,Object.assign({getPopupContainer:i,overflowedIndicator:s.createElement(yy,null),overflowedIndicatorPopupClassName:G(P,`${P}-${v}`,w),mode:R,selectable:I,onClick:$},O,{inlineCollapsed:N,style:Object.assign(Object.assign({},c==null?void 0:c.style),m),className:L,prefixCls:P,direction:l,defaultMotions:T,expandIcon:F,ref:t,rootClassName:G(y,z,o.rootClassName,j,M),_internalComponents:xF})))))}),$i=s.forwardRef((e,t)=>{const n=s.useRef(null),r=s.useContext(sm);return s.useImperativeHandle(t,()=>({menu:n.current,focus:o=>{var a;(a=n.current)===null||a===void 0||a.focus(o)}})),s.createElement(wF,Object.assign({ref:n},e,r))});$i.Item=_R;$i.SubMenu=jR;$i.Divider=MR;$i.ItemGroup=hy;const $F=e=>{const{componentCls:t,menuCls:n,colorError:r,colorTextLightSolid:o}=e,a=`${n}-item`;return{[`${t}, ${t}-menu-submenu`]:{[`${n} ${a}`]:{[`&${a}-danger:not(${a}-disabled)`]:{color:r,"&:hover":{color:o,backgroundColor:r}}}}}},EF=e=>{const{componentCls:t,menuCls:n,zIndexPopup:r,dropdownArrowDistance:o,sizePopupArrow:a,antCls:i,iconCls:l,motionDurationMid:c,paddingBlock:u,fontSize:d,dropdownEdgeChildPadding:f,colorTextDisabled:m,fontSizeIcon:v,controlPaddingHorizontal:p,colorBgElevated:b}=e;return[{[t]:{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:r,display:"block","&::before":{position:"absolute",insetBlock:e.calc(a).div(2).sub(o).equal(),zIndex:-9999,opacity:1e-4,content:'""'},"&-menu-vertical":{maxHeight:"100vh",overflowY:"auto"},[`&-trigger${i}-btn`]:{[`& > ${l}-down, & > ${i}-btn-icon > ${l}-down`]:{fontSize:v}},[`${t}-wrap`]:{position:"relative",[`${i}-btn > ${l}-down`]:{fontSize:v},[`${l}-down::before`]:{transition:`transform ${c}`}},[`${t}-wrap-open`]:{[`${l}-down::before`]:{transform:"rotate(180deg)"}},"\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n ":{display:"none"},[`&${i}-slide-down-enter${i}-slide-down-enter-active${t}-placement-bottomLeft, + &${i}-slide-down-appear${i}-slide-down-appear-active${t}-placement-bottomLeft, + &${i}-slide-down-enter${i}-slide-down-enter-active${t}-placement-bottom, + &${i}-slide-down-appear${i}-slide-down-appear-active${t}-placement-bottom, + &${i}-slide-down-enter${i}-slide-down-enter-active${t}-placement-bottomRight, + &${i}-slide-down-appear${i}-slide-down-appear-active${t}-placement-bottomRight`]:{animationName:W0},[`&${i}-slide-up-enter${i}-slide-up-enter-active${t}-placement-topLeft, + &${i}-slide-up-appear${i}-slide-up-appear-active${t}-placement-topLeft, + &${i}-slide-up-enter${i}-slide-up-enter-active${t}-placement-top, + &${i}-slide-up-appear${i}-slide-up-appear-active${t}-placement-top, + &${i}-slide-up-enter${i}-slide-up-enter-active${t}-placement-topRight, + &${i}-slide-up-appear${i}-slide-up-appear-active${t}-placement-topRight`]:{animationName:U0},[`&${i}-slide-down-leave${i}-slide-down-leave-active${t}-placement-bottomLeft, + &${i}-slide-down-leave${i}-slide-down-leave-active${t}-placement-bottom, + &${i}-slide-down-leave${i}-slide-down-leave-active${t}-placement-bottomRight`]:{animationName:K0},[`&${i}-slide-up-leave${i}-slide-up-leave-active${t}-placement-topLeft, + &${i}-slide-up-leave${i}-slide-up-leave-active${t}-placement-top, + &${i}-slide-up-leave${i}-slide-up-leave-active${t}-placement-topRight`]:{animationName:G0}}},uy(e,b,{arrowPlacement:{top:!0,bottom:!0}}),{[`${t} ${n}`]:{position:"relative",margin:0},[`${n}-submenu-popup`]:{position:"absolute",zIndex:r,background:"transparent",boxShadow:"none",transformOrigin:"0 0","ul, li":{listStyle:"none",margin:0}},[`${t}, ${t}-menu-submenu`]:Object.assign(Object.assign({},Jt(e)),{[n]:Object.assign(Object.assign({padding:f,listStyleType:"none",backgroundColor:b,backgroundClip:"padding-box",borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary},ea(e)),{"&:empty":{padding:0,boxShadow:"none"},[`${n}-item-group-title`]:{padding:`${U(u)} ${U(p)}`,color:e.colorTextDescription,transition:`all ${c}`},[`${n}-item`]:{position:"relative",display:"flex",alignItems:"center"},[`${n}-item-icon`]:{minWidth:d,marginInlineEnd:e.marginXS,fontSize:e.fontSizeSM},[`${n}-title-content`]:{flex:"auto","&-with-extra":{display:"inline-flex",alignItems:"center",width:"100%"},"> a":{color:"inherit",transition:`all ${c}`,"&:hover":{color:"inherit"},"&::after":{position:"absolute",inset:0,content:'""'}},[`${n}-item-extra`]:{paddingInlineStart:e.padding,marginInlineStart:"auto",fontSize:e.fontSizeSM,color:e.colorTextDescription}},[`${n}-item, ${n}-submenu-title`]:Object.assign(Object.assign({display:"flex",margin:0,padding:`${U(u)} ${U(p)}`,color:e.colorText,fontWeight:"normal",fontSize:d,lineHeight:e.lineHeight,cursor:"pointer",transition:`all ${c}`,borderRadius:e.borderRadiusSM,"&:hover, &-active":{backgroundColor:e.controlItemBgHover}},ea(e)),{"&-selected":{color:e.colorPrimary,backgroundColor:e.controlItemBgActive,"&:hover, &-active":{backgroundColor:e.controlItemBgActiveHover}},"&-disabled":{color:m,cursor:"not-allowed","&:hover":{color:m,backgroundColor:b,cursor:"not-allowed"},a:{pointerEvents:"none"}},"&-divider":{height:1,margin:`${U(e.marginXXS)} 0`,overflow:"hidden",lineHeight:0,backgroundColor:e.colorSplit},[`${t}-menu-submenu-expand-icon`]:{position:"absolute",insetInlineEnd:e.paddingXS,[`${t}-menu-submenu-arrow-icon`]:{marginInlineEnd:"0 !important",color:e.colorIcon,fontSize:v,fontStyle:"normal"}}}),[`${n}-item-group-list`]:{margin:`0 ${U(e.marginXS)}`,padding:0,listStyle:"none"},[`${n}-submenu-title`]:{paddingInlineEnd:e.calc(p).add(e.fontSizeSM).equal()},[`${n}-submenu-vertical`]:{position:"relative"},[`${n}-submenu${n}-submenu-disabled ${t}-menu-submenu-title`]:{[`&, ${t}-menu-submenu-arrow-icon`]:{color:m,backgroundColor:b,cursor:"not-allowed"}},[`${n}-submenu-selected ${t}-menu-submenu-title`]:{color:e.colorPrimary}})})},[ja(e,"slide-up"),ja(e,"slide-down"),kd(e,"move-up"),kd(e,"move-down"),jc(e,"zoom-big")]]},OF=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+50,paddingBlock:(e.controlHeight-e.fontSize*e.lineHeight)/2},am({contentRadius:e.borderRadiusLG,limitVerticalRadius:!0})),cy(e)),RF=Wt("Dropdown",e=>{const{marginXXS:t,sizePopupArrow:n,paddingXXS:r,componentCls:o}=e,a=Rt(e,{menuCls:`${o}-menu`,dropdownArrowDistance:e.calc(n).div(2).add(t).equal(),dropdownEdgeChildPadding:r});return[EF(a),$F(a)]},OF,{resetStyle:!1}),cm=e=>{var t;const{menu:n,arrow:r,prefixCls:o,children:a,trigger:i,disabled:l,dropdownRender:c,popupRender:u,getPopupContainer:d,overlayClassName:f,rootClassName:m,overlayStyle:v,open:p,onOpenChange:b,visible:h,onVisibleChange:g,mouseEnterDelay:y=.15,mouseLeaveDelay:C=.1,autoAdjustOverflow:x=!0,placement:S="",overlay:w,transitionName:E,destroyOnHidden:O,destroyPopupOnHide:$}=e,{getPopupContainer:R,getPrefixCls:I,direction:N,dropdown:T}=s.useContext(lt),P=u||c;Si();const M=s.useMemo(()=>{const ie=I();return E!==void 0?E:S.includes("top")?`${ie}-slide-down`:`${ie}-slide-up`},[I,S,E]),_=s.useMemo(()=>S?S.includes("Center")?S.slice(0,S.indexOf("Center")):S:N==="rtl"?"bottomRight":"bottomLeft",[S,N]),z=I("dropdown",o),j=mr(z),[L,F,W]=RF(z,j),[,H]=Kn(),A=s.Children.only(CA(a)?s.createElement("span",null,a):a),V=nr(A,{className:G(`${z}-trigger`,{[`${z}-rtl`]:N==="rtl"},A.props.className),disabled:(t=A.props.disabled)!==null&&t!==void 0?t:l}),K=l?[]:i,Y=!!(K!=null&&K.includes("contextMenu")),[re,J]=on(!1,{value:p??h}),ae=Vt(ie=>{b==null||b(ie,{source:"trigger"}),g==null||g(ie),J(ie)}),le=G(f,m,F,W,j,T==null?void 0:T.className,{[`${z}-rtl`]:N==="rtl"}),te=lR({arrowPointAtCenter:typeof r=="object"&&r.pointAtCenter,autoAdjustOverflow:x,offset:H.marginXXS,arrowWidth:r?H.sizePopupArrow:0,borderRadius:H.borderRadius}),q=s.useCallback(()=>{n!=null&&n.selectable&&(n!=null&&n.multiple)||(b==null||b(!1,{source:"menu"}),J(!1))},[n==null?void 0:n.selectable,n==null?void 0:n.multiple]),X=()=>{let ie;return n!=null&&n.items?ie=s.createElement($i,Object.assign({},n)):typeof w=="function"?ie=w():ie=w,P&&(ie=P(ie)),ie=s.Children.only(typeof ie=="string"?s.createElement("span",null,ie):ie),s.createElement(zR,{prefixCls:`${z}-menu`,rootClassName:G(W,j),expandIcon:s.createElement("span",{className:`${z}-menu-submenu-arrow`},N==="rtl"?s.createElement(vc,{className:`${z}-menu-submenu-arrow-icon`}):s.createElement(uc,{className:`${z}-menu-submenu-arrow-icon`})),mode:"vertical",selectable:!1,onClick:q,validator:({mode:fe})=>{}},ie)},[Q,Z]=_c("Dropdown",v==null?void 0:v.zIndex);let ne=s.createElement(pR,Object.assign({alignPoint:Y},Zt(e,["rootClassName"]),{mouseEnterDelay:y,mouseLeaveDelay:C,visible:re,builtinPlacements:te,arrow:!!r,overlayClassName:le,prefixCls:z,getPopupContainer:d||R,transitionName:M,trigger:K,overlay:X,placement:_,onVisibleChange:ae,overlayStyle:Object.assign(Object.assign(Object.assign({},T==null?void 0:T.style),v),{zIndex:Q}),autoDestroy:O??$}),V);return Q&&(ne=s.createElement(Bf.Provider,{value:Z},ne)),L(ne)},PF=DO(cm,"align",void 0,"dropdown",e=>e),IF=e=>s.createElement(PF,Object.assign({},e),s.createElement("span",null));cm._InternalPanelDoNotUseOrYouWillBeFired=IF;const LR=s.createContext(null),NF=LR.Provider,DR=s.createContext(null),TF=DR.Provider;var MF=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],BR=s.forwardRef(function(e,t){var n=e.prefixCls,r=n===void 0?"rc-checkbox":n,o=e.className,a=e.style,i=e.checked,l=e.disabled,c=e.defaultChecked,u=c===void 0?!1:c,d=e.type,f=d===void 0?"checkbox":d,m=e.title,v=e.onChange,p=ut(e,MF),b=s.useRef(null),h=s.useRef(null),g=on(u,{value:i}),y=ee(g,2),C=y[0],x=y[1];s.useImperativeHandle(t,function(){return{focus:function(O){var $;($=b.current)===null||$===void 0||$.focus(O)},blur:function(){var O;(O=b.current)===null||O===void 0||O.blur()},input:b.current,nativeElement:h.current}});var S=G(r,o,D(D({},"".concat(r,"-checked"),C),"".concat(r,"-disabled"),l)),w=function(O){l||("checked"in e||x(O.target.checked),v==null||v({target:k(k({},e),{},{type:f,checked:O.target.checked}),stopPropagation:function(){O.stopPropagation()},preventDefault:function(){O.preventDefault()},nativeEvent:O.nativeEvent}))};return s.createElement("span",{className:S,title:m,style:a,ref:h},s.createElement("input",pe({},p,{className:"".concat(r,"-input"),ref:b,onChange:w,disabled:l,checked:!!C,type:f})),s.createElement("span",{className:"".concat(r,"-inner")}))});function kR(e){const t=B.useRef(null),n=()=>{Lt.cancel(t.current),t.current=null};return[()=>{n(),t.current=Lt(()=>{t.current=null})},a=>{t.current&&(a.stopPropagation(),n()),e==null||e(a)}]}const _F=e=>{const{componentCls:t,antCls:n}=e,r=`${t}-group`;return{[r]:Object.assign(Object.assign({},Jt(e)),{display:"inline-block",fontSize:0,[`&${r}-rtl`]:{direction:"rtl"},[`&${r}-block`]:{display:"flex"},[`${n}-badge ${n}-badge-count`]:{zIndex:1},[`> ${n}-badge:not(:first-child) > ${n}-button-wrapper`]:{borderInlineStart:"none"}})}},zF=e=>{const{componentCls:t,wrapperMarginInlineEnd:n,colorPrimary:r,radioSize:o,motionDurationSlow:a,motionDurationMid:i,motionEaseInOutCirc:l,colorBgContainer:c,colorBorder:u,lineWidth:d,colorBgContainerDisabled:f,colorTextDisabled:m,paddingXS:v,dotColorDisabled:p,lineType:b,radioColor:h,radioBgColor:g,calc:y}=e,C=`${t}-inner`,S=y(o).sub(y(4).mul(2)),w=y(1).mul(o).equal({unit:!0});return{[`${t}-wrapper`]:Object.assign(Object.assign({},Jt(e)),{display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:n,cursor:"pointer","&:last-child":{marginInlineEnd:0},[`&${t}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:e.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},"&-block":{flex:1,justifyContent:"center"},[`${t}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${U(d)} ${b} ${r}`,borderRadius:"50%",visibility:"hidden",opacity:0,content:'""'},[t]:Object.assign(Object.assign({},Jt(e)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center",borderRadius:"50%"}),[`${t}-wrapper:hover &, + &:hover ${C}`]:{borderColor:r},[`${t}-input:focus-visible + ${C}`]:Object.assign({},ko(e)),[`${t}:hover::after, ${t}-wrapper:hover &::after`]:{visibility:"visible"},[`${t}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:w,height:w,marginBlockStart:y(1).mul(o).div(-2).equal({unit:!0}),marginInlineStart:y(1).mul(o).div(-2).equal({unit:!0}),backgroundColor:h,borderBlockStart:0,borderInlineStart:0,borderRadius:w,transform:"scale(0)",opacity:0,transition:`all ${a} ${l}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:w,height:w,backgroundColor:c,borderColor:u,borderStyle:"solid",borderWidth:d,borderRadius:"50%",transition:`all ${i}`},[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0},[`${t}-checked`]:{[C]:{borderColor:r,backgroundColor:g,"&::after":{transform:`scale(${e.calc(e.dotSize).div(o).equal()})`,opacity:1,transition:`all ${a} ${l}`}}},[`${t}-disabled`]:{cursor:"not-allowed",[C]:{backgroundColor:f,borderColor:u,cursor:"not-allowed","&::after":{backgroundColor:p}},[`${t}-input`]:{cursor:"not-allowed"},[`${t}-disabled + span`]:{color:m,cursor:"not-allowed"},[`&${t}-checked`]:{[C]:{"&::after":{transform:`scale(${y(S).div(o).equal()})`}}}},[`span${t} + *`]:{paddingInlineStart:v,paddingInlineEnd:v}})}},jF=e=>{const{buttonColor:t,controlHeight:n,componentCls:r,lineWidth:o,lineType:a,colorBorder:i,motionDurationSlow:l,motionDurationMid:c,buttonPaddingInline:u,fontSize:d,buttonBg:f,fontSizeLG:m,controlHeightLG:v,controlHeightSM:p,paddingXS:b,borderRadius:h,borderRadiusSM:g,borderRadiusLG:y,buttonCheckedBg:C,buttonSolidCheckedColor:x,colorTextDisabled:S,colorBgContainerDisabled:w,buttonCheckedBgDisabled:E,buttonCheckedColorDisabled:O,colorPrimary:$,colorPrimaryHover:R,colorPrimaryActive:I,buttonSolidCheckedBg:N,buttonSolidCheckedHoverBg:T,buttonSolidCheckedActiveBg:P,calc:M}=e;return{[`${r}-button-wrapper`]:{position:"relative",display:"inline-block",height:n,margin:0,paddingInline:u,paddingBlock:0,color:t,fontSize:d,lineHeight:U(M(n).sub(M(o).mul(2)).equal()),background:f,border:`${U(o)} ${a} ${i}`,borderBlockStartWidth:M(o).add(.02).equal(),borderInlineStartWidth:0,borderInlineEndWidth:o,cursor:"pointer",transition:[`color ${c}`,`background ${c}`,`box-shadow ${c}`].join(","),a:{color:t},[`> ${r}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:first-child)":{"&::before":{position:"absolute",insetBlockStart:M(o).mul(-1).equal(),insetInlineStart:M(o).mul(-1).equal(),display:"block",boxSizing:"content-box",width:1,height:"100%",paddingBlock:o,paddingInline:0,backgroundColor:i,transition:`background-color ${l}`,content:'""'}},"&:first-child":{borderInlineStart:`${U(o)} ${a} ${i}`,borderStartStartRadius:h,borderEndStartRadius:h},"&:last-child":{borderStartEndRadius:h,borderEndEndRadius:h},"&:first-child:last-child":{borderRadius:h},[`${r}-group-large &`]:{height:v,fontSize:m,lineHeight:U(M(v).sub(M(o).mul(2)).equal()),"&:first-child":{borderStartStartRadius:y,borderEndStartRadius:y},"&:last-child":{borderStartEndRadius:y,borderEndEndRadius:y}},[`${r}-group-small &`]:{height:p,paddingInline:M(b).sub(o).equal(),paddingBlock:0,lineHeight:U(M(p).sub(M(o).mul(2)).equal()),"&:first-child":{borderStartStartRadius:g,borderEndStartRadius:g},"&:last-child":{borderStartEndRadius:g,borderEndEndRadius:g}},"&:hover":{position:"relative",color:$},"&:has(:focus-visible)":Object.assign({},ko(e)),[`${r}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${r}-button-wrapper-disabled)`]:{zIndex:1,color:$,background:C,borderColor:$,"&::before":{backgroundColor:$},"&:first-child":{borderColor:$},"&:hover":{color:R,borderColor:R,"&::before":{backgroundColor:R}},"&:active":{color:I,borderColor:I,"&::before":{backgroundColor:I}}},[`${r}-group-solid &-checked:not(${r}-button-wrapper-disabled)`]:{color:x,background:N,borderColor:N,"&:hover":{color:x,background:T,borderColor:T},"&:active":{color:x,background:P,borderColor:P}},"&-disabled":{color:S,backgroundColor:w,borderColor:i,cursor:"not-allowed","&:first-child, &:hover":{color:S,backgroundColor:w,borderColor:i}},[`&-disabled${r}-button-wrapper-checked`]:{color:O,backgroundColor:E,borderColor:i,boxShadow:"none"},"&-block":{flex:1,textAlign:"center"}}}},LF=e=>{const{wireframe:t,padding:n,marginXS:r,lineWidth:o,fontSizeLG:a,colorText:i,colorBgContainer:l,colorTextDisabled:c,controlItemBgActiveDisabled:u,colorTextLightSolid:d,colorPrimary:f,colorPrimaryHover:m,colorPrimaryActive:v,colorWhite:p}=e,b=4,h=a,g=t?h-b*2:h-(b+o)*2;return{radioSize:h,dotSize:g,dotColorDisabled:c,buttonSolidCheckedColor:d,buttonSolidCheckedBg:f,buttonSolidCheckedHoverBg:m,buttonSolidCheckedActiveBg:v,buttonBg:l,buttonCheckedBg:l,buttonColor:i,buttonCheckedBgDisabled:u,buttonCheckedColorDisabled:c,buttonPaddingInline:n-o,wrapperMarginInlineEnd:r,radioColor:t?f:p,radioBgColor:t?l:f}},AR=Wt("Radio",e=>{const{controlOutline:t,controlOutlineWidth:n}=e,r=`0 0 0 ${U(n)} ${t}`,a=Rt(e,{radioFocusShadow:r,radioButtonFocusShadow:r});return[_F(a),zF(a),jF(a)]},LF,{unitless:{radioSize:!0,dotSize:!0}});var DF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n,r;const o=s.useContext(LR),a=s.useContext(DR),{getPrefixCls:i,direction:l,radio:c}=s.useContext(lt),u=s.useRef(null),d=Or(t,u),{isFormItemInput:f}=s.useContext(So),m=_=>{var z,j;(z=e.onChange)===null||z===void 0||z.call(e,_),(j=o==null?void 0:o.onChange)===null||j===void 0||j.call(o,_)},{prefixCls:v,className:p,rootClassName:b,children:h,style:g,title:y}=e,C=DF(e,["prefixCls","className","rootClassName","children","style","title"]),x=i("radio",v),S=((o==null?void 0:o.optionType)||a)==="button",w=S?`${x}-button`:x,E=mr(x),[O,$,R]=AR(x,E),I=Object.assign({},C),N=s.useContext(bo);o&&(I.name=o.name,I.onChange=m,I.checked=e.value===o.value,I.disabled=(n=I.disabled)!==null&&n!==void 0?n:o.disabled),I.disabled=(r=I.disabled)!==null&&r!==void 0?r:N;const T=G(`${w}-wrapper`,{[`${w}-wrapper-checked`]:I.checked,[`${w}-wrapper-disabled`]:I.disabled,[`${w}-wrapper-rtl`]:l==="rtl",[`${w}-wrapper-in-form-item`]:f,[`${w}-wrapper-block`]:!!(o!=null&&o.block)},c==null?void 0:c.className,p,b,$,R,E),[P,M]=kR(I.onClick);return O(s.createElement(Hf,{component:"Radio",disabled:I.disabled},s.createElement("label",{className:T,style:Object.assign(Object.assign({},c==null?void 0:c.style),g),onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,title:y,onClick:P},s.createElement(BR,Object.assign({},I,{className:G(I.className,{[Ff]:!S}),type:"radio",prefixCls:w,ref:d,onClick:M})),h!==void 0?s.createElement("span",{className:`${w}-label`},h):null)))},qd=s.forwardRef(BF),kF=s.forwardRef((e,t)=>{const{getPrefixCls:n,direction:r}=s.useContext(lt),o=Qf(),{prefixCls:a,className:i,rootClassName:l,options:c,buttonStyle:u="outline",disabled:d,children:f,size:m,style:v,id:p,optionType:b,name:h=o,defaultValue:g,value:y,block:C=!1,onChange:x,onMouseEnter:S,onMouseLeave:w,onFocus:E,onBlur:O}=e,[$,R]=on(g,{value:y}),I=s.useCallback(H=>{const A=$,V=H.target.value;"value"in e||R(V),V!==A&&(x==null||x(H))},[$,R,x]),N=n("radio",a),T=`${N}-group`,P=mr(N),[M,_,z]=AR(N,P);let j=f;c&&c.length>0&&(j=c.map(H=>typeof H=="string"||typeof H=="number"?s.createElement(qd,{key:H.toString(),prefixCls:N,disabled:d,value:H,checked:$===H},H):s.createElement(qd,{key:`radio-group-value-options-${H.value}`,prefixCls:N,disabled:H.disabled||d,value:H.value,checked:$===H.value,title:H.title,style:H.style,className:H.className,id:H.id,required:H.required},H.label)));const L=no(m),F=G(T,`${T}-${u}`,{[`${T}-${L}`]:L,[`${T}-rtl`]:r==="rtl",[`${T}-block`]:C},i,l,_,z,P),W=s.useMemo(()=>({onChange:I,value:$,disabled:d,name:h,optionType:b,block:C}),[I,$,d,h,b,C]);return M(s.createElement("div",Object.assign({},tr(e,{aria:!0,data:!0}),{className:F,style:v,onMouseEnter:S,onMouseLeave:w,onFocus:E,onBlur:O,id:p,ref:t}),s.createElement(NF,{value:W},j)))}),AF=s.memo(kF);var FF=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{getPrefixCls:n}=s.useContext(lt),{prefixCls:r}=e,o=FF(e,["prefixCls"]),a=n("radio",r);return s.createElement(TF,{value:"button"},s.createElement(qd,Object.assign({prefixCls:a},o,{type:"radio",ref:t})))},VF=s.forwardRef(HF),Hc=qd;Hc.Button=VF;Hc.Group=AF;Hc.__ANT_RADIO=!0;function Vc(e){return Rt(e,{inputAffixPadding:e.paddingXXS})}const Wc=e=>{const{controlHeight:t,fontSize:n,lineHeight:r,lineWidth:o,controlHeightSM:a,controlHeightLG:i,fontSizeLG:l,lineHeightLG:c,paddingSM:u,controlPaddingHorizontalSM:d,controlPaddingHorizontal:f,colorFillAlter:m,colorPrimaryHover:v,colorPrimary:p,controlOutlineWidth:b,controlOutline:h,colorErrorOutline:g,colorWarningOutline:y,colorBgContainer:C,inputFontSize:x,inputFontSizeLG:S,inputFontSizeSM:w}=e,E=x||n,O=w||E,$=S||l,R=Math.round((t-E*r)/2*10)/10-o,I=Math.round((a-O*r)/2*10)/10-o,N=Math.ceil((i-$*c)/2*10)/10-o;return{paddingBlock:Math.max(R,0),paddingBlockSM:Math.max(I,0),paddingBlockLG:Math.max(N,0),paddingInline:u-o,paddingInlineSM:d-o,paddingInlineLG:f-o,addonBg:m,activeBorderColor:p,hoverBorderColor:v,activeShadow:`0 0 0 ${b}px ${h}`,errorActiveShadow:`0 0 0 ${b}px ${g}`,warningActiveShadow:`0 0 0 ${b}px ${y}`,hoverBg:C,activeBg:C,inputFontSize:E,inputFontSizeLG:$,inputFontSizeSM:O}},WF=e=>({borderColor:e.hoverBorderColor,backgroundColor:e.hoverBg}),um=e=>({color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled], textarea[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},WF(Rt(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})))}),by=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,"&:hover":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),yx=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},by(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),KF=(e,t)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},by(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},um(e))}),yx(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),yx(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),bx=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),UF=e=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{"&-addon":{background:e.addonBg,border:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},bx(e,{status:"error",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),bx(e,{status:"warning",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},um(e))}})}),GF=(e,t)=>{const{componentCls:n}=e;return{"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${n}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${n}-status-error`]:{"&, & input, & textarea":{color:e.colorError}},[`&${n}-status-warning`]:{"&, & input, & textarea":{color:e.colorWarning}}},t)}},FR=(e,t)=>{var n;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:(n=t==null?void 0:t.inputColor)!==null&&n!==void 0?n:"unset"},"&:hover":{background:t.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},Cx=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},FR(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),qF=(e,t)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},FR(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},um(e))}),Cx(e,{status:"error",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),Cx(e,{status:"warning",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),Sx=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),XF=e=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,"&:last-child":{position:"static"}}},Sx(e,{status:"error",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),Sx(e,{status:"warning",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{"&-addon":{background:e.colorFillTertiary,color:e.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),HR=(e,t)=>({background:e.colorBgContainer,borderWidth:`${U(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${t.borderColor} transparent`,borderRadius:0,"&:hover":{borderColor:`transparent transparent ${t.borderColor} transparent`,backgroundColor:e.hoverBg},"&:focus, &:focus-within":{borderColor:`transparent transparent ${t.borderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),xx=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},HR(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),YF=(e,t)=>({"&-underlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},HR(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:"none",cursor:"not-allowed","&:hover":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},"input[disabled], textarea[disabled]":{cursor:"not-allowed"}}),xx(e,{status:"error",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),xx(e,{status:"warning",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),QF=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),VR=e=>{const{paddingBlockLG:t,lineHeightLG:n,borderRadiusLG:r,paddingInlineLG:o}=e;return{padding:`${U(t)} ${U(o)}`,fontSize:e.inputFontSizeLG,lineHeight:n,borderRadius:r}},Cy=e=>({padding:`${U(e.paddingBlockSM)} ${U(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),Sy=e=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${U(e.paddingBlock)} ${U(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},QF(e.colorTextPlaceholder)),{"&-lg":Object.assign({},VR(e)),"&-sm":Object.assign({},Cy(e)),"&-rtl, &-textarea-rtl":{direction:"rtl"}}),JF=e=>{const{componentCls:t,antCls:n}=e;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${t}, &-lg > ${t}-group-addon`]:Object.assign({},VR(e)),[`&-sm ${t}, &-sm > ${t}-group-addon`]:Object.assign({},Cy(e)),[`&-lg ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${n}-select-single ${n}-select-selector`]:{height:e.controlHeightSM},[`> ${t}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${t}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${U(e.paddingInline)}`,color:e.colorText,fontWeight:"normal",fontSize:e.inputFontSize,textAlign:"center",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`${U(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${U(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${n}-select-single:not(${n}-select-customize-input):not(${n}-pagination-size-changer)`]:{[`${n}-select-selector`]:{backgroundColor:"inherit",border:`${U(e.lineWidth)} ${e.lineType} transparent`,boxShadow:"none"}}},[`${n}-cascader-picker`]:{margin:`-9px ${U(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${n}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[t]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${t}-search-with-button &`]:{zIndex:0}}},[`> ${t}:first-child, ${t}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}-affix-wrapper`]:{[`&:not(:first-child) ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}:last-child, ${t}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${t}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${t}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${t}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${t}-group-compact`]:Object.assign(Object.assign({display:"block"},Co()),{[`${t}-group-addon, ${t}-group-wrap, > ${t}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover, &:focus":{zIndex:1}}},"& > *":{display:"inline-flex",float:"none",verticalAlign:"top",borderRadius:0},[` + & > ${t}-affix-wrapper, + & > ${t}-number-affix-wrapper, + & > ${n}-picker-range + `]:{display:"inline-flex"},"& > *:not(:last-child)":{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderInlineEndWidth:e.lineWidth},[t]:{float:"none"},[`& > ${n}-select > ${n}-select-selector, + & > ${n}-select-auto-complete ${t}, + & > ${n}-cascader-picker ${t}, + & > ${t}-group-wrapper ${t}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,"&:hover, &:focus":{zIndex:1}},[`& > ${n}-select-focused`]:{zIndex:1},[`& > ${n}-select > ${n}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${n}-select:first-child > ${n}-select-selector, + & > ${n}-select-auto-complete:first-child ${t}, + & > ${n}-cascader-picker:first-child ${t}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child, + & > ${n}-select:last-child > ${n}-select-selector, + & > ${n}-cascader-picker:last-child ${t}, + & > ${n}-cascader-picker-focused:last-child ${t}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${n}-select-auto-complete ${t}`]:{verticalAlign:"top"},[`${t}-group-wrapper + ${t}-group-wrapper`]:{marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),[`${t}-affix-wrapper`]:{borderRadius:0}},[`${t}-group-wrapper:not(:last-child)`]:{[`&${t}-search > ${t}-group`]:{[`& > ${t}-group-addon > ${t}-search-button`]:{borderRadius:0},[`& > ${t}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}})}},ZF=e=>{const{componentCls:t,controlHeightSM:n,lineWidth:r,calc:o}=e,i=o(n).sub(o(r).mul(2)).sub(16).div(2).equal();return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Jt(e)),Sy(e)),KF(e)),qF(e)),GF(e)),YF(e)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:n,paddingTop:i,paddingBottom:i}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{appearance:"none"}})}},e5=e=>{const{componentCls:t}=e;return{[`${t}-clear-icon`]:{margin:0,padding:0,lineHeight:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${e.motionDurationSlow}`,border:"none",outline:"none",backgroundColor:"transparent","&:hover":{color:e.colorIcon},"&:active":{color:e.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${U(e.inputAffixPadding)}`}}}},t5=e=>{const{componentCls:t,inputAffixPadding:n,colorTextDescription:r,motionDurationSlow:o,colorIcon:a,colorIconHover:i,iconCls:l}=e,c=`${t}-affix-wrapper`,u=`${t}-affix-wrapper-disabled`;return{[c]:Object.assign(Object.assign(Object.assign(Object.assign({},Sy(e)),{display:"inline-flex",[`&:not(${t}-disabled):hover`]:{zIndex:1,[`${t}-search-with-button &`]:{zIndex:0}},"&-focused, &:focus":{zIndex:1},[`> input${t}`]:{padding:0},[`> input${t}, > textarea${t}`]:{fontSize:"inherit",border:"none",borderRadius:0,outline:"none",background:"transparent",color:"inherit","&::-ms-reveal":{display:"none"},"&:focus":{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[t]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:r,direction:"ltr"},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:n},"&-suffix":{marginInlineStart:n}}}),e5(e)),{[`${l}${t}-password-icon`]:{color:a,cursor:"pointer",transition:`all ${o}`,"&:hover":{color:i}}}),[`${t}-underlined`]:{borderRadius:0},[u]:{[`${l}${t}-password-icon`]:{color:a,cursor:"not-allowed","&:hover":{color:a}}}}},n5=e=>{const{componentCls:t,borderRadiusLG:n,borderRadiusSM:r}=e;return{[`${t}-group`]:Object.assign(Object.assign(Object.assign({},Jt(e)),JF(e)),{"&-rtl":{direction:"rtl"},"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${t}-group-addon`]:{borderRadius:n,fontSize:e.inputFontSizeLG}},"&-sm":{[`${t}-group-addon`]:{borderRadius:r}}},UF(e)),XF(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})})}},r5=e=>{const{componentCls:t,antCls:n}=e,r=`${t}-search`;return{[r]:{[t]:{"&:hover, &:focus":{[`+ ${t}-group-addon ${r}-button:not(${n}-btn-color-primary):not(${n}-btn-variant-text)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{height:e.controlHeight,borderRadius:0},[`${t}-lg`]:{lineHeight:e.calc(e.lineHeightLG).sub(2e-4).equal()},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${r}-button`]:{marginInlineEnd:-1,borderStartStartRadius:0,borderEndStartRadius:0,boxShadow:"none"},[`${r}-button:not(${n}-btn-color-primary)`]:{color:e.colorTextDescription,"&:hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${n}-btn-loading::before`]:{inset:0}}}},[`${r}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},"&-large":{[`${t}-affix-wrapper, ${r}-button`]:{height:e.controlHeightLG}},"&-small":{[`${t}-affix-wrapper, ${r}-button`]:{height:e.controlHeightSM}},"&-rtl":{direction:"rtl"},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button, + > ${t}, + ${t}-affix-wrapper`]:{"&:hover, &:focus, &:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}},o5=e=>{const{componentCls:t}=e;return{[`${t}-out-of-range`]:{[`&, & input, & textarea, ${t}-show-count-suffix, ${t}-data-count`]:{color:e.colorError}}}},WR=Wt(["Input","Shared"],e=>{const t=Rt(e,Vc(e));return[ZF(t),t5(t)]},Wc,{resetFont:!1}),KR=Wt(["Input","Component"],e=>{const t=Rt(e,Vc(e));return[n5(t),r5(t),o5(t),X0(t)]},Wc,{resetFont:!1});var a5={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"},i5=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:a5}))},l5=s.forwardRef(i5);const dm=s.createContext(null);var s5=function(t){var n=t.activeTabOffset,r=t.horizontal,o=t.rtl,a=t.indicator,i=a===void 0?{}:a,l=i.size,c=i.align,u=c===void 0?"center":c,d=s.useState(),f=ee(d,2),m=f[0],v=f[1],p=s.useRef(),b=B.useCallback(function(g){return typeof l=="function"?l(g):typeof l=="number"?l:g},[l]);function h(){Lt.cancel(p.current)}return s.useEffect(function(){var g={};if(n)if(r){g.width=b(n.width);var y=o?"right":"left";u==="start"&&(g[y]=n[y]),u==="center"&&(g[y]=n[y]+n.width/2,g.transform=o?"translateX(50%)":"translateX(-50%)"),u==="end"&&(g[y]=n[y]+n.width,g.transform="translateX(-100%)")}else g.height=b(n.height),u==="start"&&(g.top=n.top),u==="center"&&(g.top=n.top+n.height/2,g.transform="translateY(-50%)"),u==="end"&&(g.top=n.top+n.height,g.transform="translateY(-100%)");return h(),p.current=Lt(function(){var C=m&&g&&Object.keys(g).every(function(x){var S=g[x],w=m[x];return typeof S=="number"&&typeof w=="number"?Math.round(S)===Math.round(w):S===w});C||v(g)}),h},[JSON.stringify(n),r,o,u,b]),{style:m}},wx={width:0,height:0,left:0,top:0};function c5(e,t,n){return s.useMemo(function(){for(var r,o=new Map,a=t.get((r=e[0])===null||r===void 0?void 0:r.key)||wx,i=a.left+a.width,l=0;lP?(N=R,w.current="x"):(N=I,w.current="y"),t(-N,-N)&&$.preventDefault()}var O=s.useRef(null);O.current={onTouchStart:C,onTouchMove:x,onTouchEnd:S,onWheel:E},s.useEffect(function(){function $(T){O.current.onTouchStart(T)}function R(T){O.current.onTouchMove(T)}function I(T){O.current.onTouchEnd(T)}function N(T){O.current.onWheel(T)}return document.addEventListener("touchmove",R,{passive:!1}),document.addEventListener("touchend",I,{passive:!0}),e.current.addEventListener("touchstart",$,{passive:!0}),e.current.addEventListener("wheel",N,{passive:!1}),function(){document.removeEventListener("touchmove",R),document.removeEventListener("touchend",I)}},[])}function UR(e){var t=s.useState(0),n=ee(t,2),r=n[0],o=n[1],a=s.useRef(0),i=s.useRef();return i.current=e,sg(function(){var l;(l=i.current)===null||l===void 0||l.call(i)},[r]),function(){a.current===r&&(a.current+=1,o(a.current))}}function f5(e){var t=s.useRef([]),n=s.useState({}),r=ee(n,2),o=r[1],a=s.useRef(typeof e=="function"?e():e),i=UR(function(){var c=a.current;t.current.forEach(function(u){c=u(c)}),t.current=[],a.current=c,o({})});function l(c){t.current.push(c),i()}return[a.current,l]}var Rx={width:0,height:0,left:0,top:0,right:0};function m5(e,t,n,r,o,a,i){var l=i.tabs,c=i.tabPosition,u=i.rtl,d,f,m;return["top","bottom"].includes(c)?(d="width",f=u?"right":"left",m=Math.abs(n)):(d="height",f="top",m=-n),s.useMemo(function(){if(!l.length)return[0,0];for(var v=l.length,p=v,b=0;bMath.floor(m+t)){p=b-1;break}}for(var g=0,y=v-1;y>=0;y-=1){var C=e.get(l[y].key)||Rx;if(C[f]=p?[0,0]:[g,p]},[e,t,r,o,a,m,c,l.map(function(v){return v.key}).join("_"),u])}function Px(e){var t;return e instanceof Map?(t={},e.forEach(function(n,r){t[r]=n})):t=e,JSON.stringify(t)}var v5="TABS_DQ";function GR(e){return String(e).replace(/"/g,v5)}function xy(e,t,n,r){return!(!n||r||e===!1||e===void 0&&(t===!1||t===null))}var qR=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.editable,o=e.locale,a=e.style;return!r||r.showAdd===!1?null:s.createElement("button",{ref:t,type:"button",className:"".concat(n,"-nav-add"),style:a,"aria-label":(o==null?void 0:o.addAriaLabel)||"Add tab",onClick:function(l){r.onEdit("add",{event:l})}},r.addIcon||"+")}),Ix=s.forwardRef(function(e,t){var n=e.position,r=e.prefixCls,o=e.extra;if(!o)return null;var a,i={};return We(o)==="object"&&!s.isValidElement(o)?i=o:i.right=o,n==="right"&&(a=i.right),n==="left"&&(a=i.left),a?s.createElement("div",{className:"".concat(r,"-extra-content"),ref:t},a):null}),p5=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.id,o=e.tabs,a=e.locale,i=e.mobile,l=e.more,c=l===void 0?{}:l,u=e.style,d=e.className,f=e.editable,m=e.tabBarGutter,v=e.rtl,p=e.removeAriaLabel,b=e.onTabClick,h=e.getPopupContainer,g=e.popupClassName,y=s.useState(!1),C=ee(y,2),x=C[0],S=C[1],w=s.useState(null),E=ee(w,2),O=E[0],$=E[1],R=c.icon,I=R===void 0?"More":R,N="".concat(r,"-more-popup"),T="".concat(n,"-dropdown"),P=O!==null?"".concat(N,"-").concat(O):null,M=a==null?void 0:a.dropdownAriaLabel;function _(A,V){A.preventDefault(),A.stopPropagation(),f.onEdit("remove",{key:V,event:A})}var z=s.createElement(Bl,{onClick:function(V){var K=V.key,Y=V.domEvent;b(K,Y),S(!1)},prefixCls:"".concat(T,"-menu"),id:N,tabIndex:-1,role:"listbox","aria-activedescendant":P,selectedKeys:[O],"aria-label":M!==void 0?M:"expanded dropdown"},o.map(function(A){var V=A.closable,K=A.disabled,Y=A.closeIcon,re=A.key,J=A.label,ae=xy(V,Y,f,K);return s.createElement(Fc,{key:re,id:"".concat(N,"-").concat(re),role:"option","aria-controls":r&&"".concat(r,"-panel-").concat(re),disabled:K},s.createElement("span",null,J),ae&&s.createElement("button",{type:"button","aria-label":p||"remove",tabIndex:0,className:"".concat(T,"-menu-item-remove"),onClick:function(te){te.stopPropagation(),_(te,re)}},Y||f.removeIcon||"×"))}));function j(A){for(var V=o.filter(function(ae){return!ae.disabled}),K=V.findIndex(function(ae){return ae.key===O})||0,Y=V.length,re=0;reze?"left":"right"})}),T=ee(N,2),P=T[0],M=T[1],_=$x(0,function(De,ze){!I&&b&&b({direction:De>ze?"top":"bottom"})}),z=ee(_,2),j=z[0],L=z[1],F=s.useState([0,0]),W=ee(F,2),H=W[0],A=W[1],V=s.useState([0,0]),K=ee(V,2),Y=K[0],re=K[1],J=s.useState([0,0]),ae=ee(J,2),le=ae[0],te=ae[1],q=s.useState([0,0]),X=ee(q,2),Q=X[0],Z=X[1],ne=f5(new Map),ie=ee(ne,2),fe=ie[0],$e=ie[1],Se=c5(C,fe,Y[0]),oe=$u(H,I),se=$u(Y,I),ye=$u(le,I),ce=$u(Q,I),we=Math.floor(oe)xe?xe:De}var Ce=s.useRef(null),ve=s.useState(),Ee=ee(ve,2),de=Ee[0],ge=Ee[1];function me(){ge(Date.now())}function ue(){Ce.current&&clearTimeout(Ce.current)}d5(E,function(De,ze){function rt(bt,kt){bt(function(Ut){var nt=Pe(Ut+kt);return nt})}return we?(I?rt(M,De):rt(L,ze),ue(),me(),!0):!1}),s.useEffect(function(){return ue(),de&&(Ce.current=setTimeout(function(){ge(0)},100)),ue},[de]);var Te=m5(Se,Oe,I?P:j,se,ye,ce,k(k({},e),{},{tabs:C})),Qe=ee(Te,2),pt=Qe[0],gt=Qe[1],ft=Vt(function(){var De=arguments.length>0&&arguments[0]!==void 0?arguments[0]:i,ze=Se.get(De)||{width:0,height:0,left:0,right:0,top:0};if(I){var rt=P;l?ze.rightP+Oe&&(rt=ze.right+ze.width-Oe):ze.left<-P?rt=-ze.left:ze.left+ze.width>-P+Oe&&(rt=-(ze.left+ze.width-Oe)),L(0),M(Pe(rt))}else{var bt=j;ze.top<-j?bt=-ze.top:ze.top+ze.height>-j+Oe&&(bt=-(ze.top+ze.height-Oe)),M(0),L(Pe(bt))}}),Bt=s.useState(),xt=ee(Bt,2),st=xt[0],at=xt[1],Ke=s.useState(!1),Fe=ee(Ke,2),Re=Fe[0],qe=Fe[1],Je=C.filter(function(De){return!De.disabled}).map(function(De){return De.key}),Ie=function(ze){var rt=Je.indexOf(st||i),bt=Je.length,kt=(rt+ze+bt)%bt,Ut=Je[kt];at(Ut)},Ne=function(ze){var rt=ze.code,bt=l&&I,kt=Je[0],Ut=Je[Je.length-1];switch(rt){case"ArrowLeft":{I&&Ie(bt?1:-1);break}case"ArrowRight":{I&&Ie(bt?-1:1);break}case"ArrowUp":{ze.preventDefault(),I||Ie(-1);break}case"ArrowDown":{ze.preventDefault(),I||Ie(1);break}case"Home":{ze.preventDefault(),at(kt);break}case"End":{ze.preventDefault(),at(Ut);break}case"Enter":case"Space":{ze.preventDefault(),p(st??i,ze);break}case"Backspace":case"Delete":{var nt=Je.indexOf(st),ot=C.find(function(Xt){return Xt.key===st}),yt=xy(ot==null?void 0:ot.closable,ot==null?void 0:ot.closeIcon,u,ot==null?void 0:ot.disabled);yt&&(ze.preventDefault(),ze.stopPropagation(),u.onEdit("remove",{key:st,event:ze}),nt===Je.length-1?Ie(-1):Ie(1));break}}},Xe={};I?Xe[l?"marginRight":"marginLeft"]=m:Xe.marginTop=m;var Ge=C.map(function(De,ze){var rt=De.key;return s.createElement(h5,{id:o,prefixCls:y,key:rt,tab:De,style:ze===0?void 0:Xe,closable:De.closable,editable:u,active:rt===i,focus:rt===st,renderWrapper:v,removeAriaLabel:d==null?void 0:d.removeAriaLabel,tabCount:Je.length,currentPosition:ze+1,onClick:function(kt){p(rt,kt)},onKeyDown:Ne,onFocus:function(){Re||at(rt),ft(rt),me(),E.current&&(l||(E.current.scrollLeft=0),E.current.scrollTop=0)},onBlur:function(){at(void 0)},onMouseDown:function(){qe(!0)},onMouseUp:function(){qe(!1)}})}),He=function(){return $e(function(){var ze,rt=new Map,bt=(ze=O.current)===null||ze===void 0?void 0:ze.getBoundingClientRect();return C.forEach(function(kt){var Ut,nt=kt.key,ot=(Ut=O.current)===null||Ut===void 0?void 0:Ut.querySelector('[data-node-key="'.concat(GR(nt),'"]'));if(ot){var yt=y5(ot,bt),Xt=ee(yt,4),pn=Xt[0],pr=Xt[1],Un=Xt[2],Pn=Xt[3];rt.set(nt,{width:pn,height:pr,left:Un,top:Pn})}}),rt})};s.useEffect(function(){He()},[C.map(function(De){return De.key}).join("_")]);var et=UR(function(){var De=Bi(x),ze=Bi(S),rt=Bi(w);A([De[0]-ze[0]-rt[0],De[1]-ze[1]-rt[1]]);var bt=Bi(R);te(bt);var kt=Bi($);Z(kt);var Ut=Bi(O);re([Ut[0]-bt[0],Ut[1]-bt[1]]),He()}),Ue=C.slice(0,pt),Ve=C.slice(gt+1),tt=[].concat(he(Ue),he(Ve)),dt=Se.get(i),St=s5({activeTabOffset:dt,horizontal:I,indicator:h,rtl:l}),Et=St.style;s.useEffect(function(){ft()},[i,je,xe,Px(dt),Px(Se),I]),s.useEffect(function(){et()},[l]);var Pt=!!tt.length,wt="".concat(y,"-nav-wrap"),Tt,It,Be,Ae;return I?l?(It=P>0,Tt=P!==xe):(Tt=P<0,It=P!==je):(Be=j<0,Ae=j!==je),s.createElement(cr,{onResize:et},s.createElement("div",{ref:na(t,x),role:"tablist","aria-orientation":I?"horizontal":"vertical",className:G("".concat(y,"-nav"),n),style:r,onKeyDown:function(){me()}},s.createElement(Ix,{ref:S,position:"left",extra:c,prefixCls:y}),s.createElement(cr,{onResize:et},s.createElement("div",{className:G(wt,D(D(D(D({},"".concat(wt,"-ping-left"),Tt),"".concat(wt,"-ping-right"),It),"".concat(wt,"-ping-top"),Be),"".concat(wt,"-ping-bottom"),Ae)),ref:E},s.createElement(cr,{onResize:et},s.createElement("div",{ref:O,className:"".concat(y,"-nav-list"),style:{transform:"translate(".concat(P,"px, ").concat(j,"px)"),transition:de?"none":void 0}},Ge,s.createElement(qR,{ref:R,prefixCls:y,locale:d,editable:u,style:k(k({},Ge.length===0?void 0:Xe),{},{visibility:Pt?"hidden":null})}),s.createElement("div",{className:G("".concat(y,"-ink-bar"),D({},"".concat(y,"-ink-bar-animated"),a.inkBar)),style:Et}))))),s.createElement(g5,pe({},e,{removeAriaLabel:d==null?void 0:d.removeAriaLabel,ref:$,prefixCls:y,tabs:tt,className:!Pt&&Le,tabMoving:!!de})),s.createElement(Ix,{ref:w,position:"right",extra:c,prefixCls:y})))}),XR=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.className,o=e.style,a=e.id,i=e.active,l=e.tabKey,c=e.children;return s.createElement("div",{id:a&&"".concat(a,"-panel-").concat(l),role:"tabpanel",tabIndex:i?0:-1,"aria-labelledby":a&&"".concat(a,"-tab-").concat(l),"aria-hidden":!i,style:o,className:G(n,i&&"".concat(n,"-active"),r),ref:t},c)}),b5=["renderTabBar"],C5=["label","key"],S5=function(t){var n=t.renderTabBar,r=ut(t,b5),o=s.useContext(dm),a=o.tabs;if(n){var i=k(k({},r),{},{panes:a.map(function(l){var c=l.label,u=l.key,d=ut(l,C5);return s.createElement(XR,pe({tab:c,key:u,tabKey:u},d))})});return n(i,Nx)}return s.createElement(Nx,r)},x5=["key","forceRender","style","className","destroyInactiveTabPane"],w5=function(t){var n=t.id,r=t.activeKey,o=t.animated,a=t.tabPosition,i=t.destroyInactiveTabPane,l=s.useContext(dm),c=l.prefixCls,u=l.tabs,d=o.tabPane,f="".concat(c,"-tabpane");return s.createElement("div",{className:G("".concat(c,"-content-holder"))},s.createElement("div",{className:G("".concat(c,"-content"),"".concat(c,"-content-").concat(a),D({},"".concat(c,"-content-animated"),d))},u.map(function(m){var v=m.key,p=m.forceRender,b=m.style,h=m.className,g=m.destroyInactiveTabPane,y=ut(m,x5),C=v===r;return s.createElement(to,pe({key:v,visible:C,forceRender:p,removeOnLeave:!!(i||g),leavedClassName:"".concat(f,"-hidden")},o.tabPaneMotion),function(x,S){var w=x.style,E=x.className;return s.createElement(XR,pe({},y,{prefixCls:f,id:n,tabKey:v,animated:d,active:C,style:k(k({},b),w),className:G(h,E),ref:S}))})})))};function $5(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{inkBar:!0,tabPane:!1},t;return e===!1?t={inkBar:!1,tabPane:!1}:e===!0?t={inkBar:!0,tabPane:!1}:t=k({inkBar:!0},We(e)==="object"?e:{}),t.tabPaneMotion&&t.tabPane===void 0&&(t.tabPane=!0),!t.tabPaneMotion&&t.tabPane&&(t.tabPane=!1),t}var E5=["id","prefixCls","className","items","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","more","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll","getPopupContainer","popupClassName","indicator"],Tx=0,O5=s.forwardRef(function(e,t){var n=e.id,r=e.prefixCls,o=r===void 0?"rc-tabs":r,a=e.className,i=e.items,l=e.direction,c=e.activeKey,u=e.defaultActiveKey,d=e.editable,f=e.animated,m=e.tabPosition,v=m===void 0?"top":m,p=e.tabBarGutter,b=e.tabBarStyle,h=e.tabBarExtraContent,g=e.locale,y=e.more,C=e.destroyInactiveTabPane,x=e.renderTabBar,S=e.onChange,w=e.onTabClick,E=e.onTabScroll,O=e.getPopupContainer,$=e.popupClassName,R=e.indicator,I=ut(e,E5),N=s.useMemo(function(){return(i||[]).filter(function(Q){return Q&&We(Q)==="object"&&"key"in Q})},[i]),T=l==="rtl",P=$5(f),M=s.useState(!1),_=ee(M,2),z=_[0],j=_[1];s.useEffect(function(){j(Z0())},[]);var L=on(function(){var Q;return(Q=N[0])===null||Q===void 0?void 0:Q.key},{value:c,defaultValue:u}),F=ee(L,2),W=F[0],H=F[1],A=s.useState(function(){return N.findIndex(function(Q){return Q.key===W})}),V=ee(A,2),K=V[0],Y=V[1];s.useEffect(function(){var Q=N.findIndex(function(ne){return ne.key===W});if(Q===-1){var Z;Q=Math.max(0,Math.min(K,N.length-1)),H((Z=N[Q])===null||Z===void 0?void 0:Z.key)}Y(Q)},[N.map(function(Q){return Q.key}).join("_"),W,K]);var re=on(null,{value:n}),J=ee(re,2),ae=J[0],le=J[1];s.useEffect(function(){n||(le("rc-tabs-".concat(Tx)),Tx+=1)},[]);function te(Q,Z){w==null||w(Q,Z);var ne=Q!==W;H(Q),ne&&(S==null||S(Q))}var q={id:ae,activeKey:W,animated:P,tabPosition:v,rtl:T,mobile:z},X=k(k({},q),{},{editable:d,locale:g,more:y,tabBarGutter:p,onTabClick:te,onTabScroll:E,extra:h,style:b,panes:null,getPopupContainer:O,popupClassName:$,indicator:R});return s.createElement(dm.Provider,{value:{tabs:N,prefixCls:o}},s.createElement("div",pe({ref:t,id:n,className:G(o,"".concat(o,"-").concat(v),D(D(D({},"".concat(o,"-mobile"),z),"".concat(o,"-editable"),d),"".concat(o,"-rtl"),T),a)},I),s.createElement(S5,pe({},X,{renderTabBar:x})),s.createElement(w5,pe({destroyInactiveTabPane:C},q,{animated:P}))))});const R5={motionAppear:!1,motionEnter:!0,motionLeave:!0};function P5(e,t={inkBar:!0,tabPane:!1}){let n;return t===!1?n={inkBar:!1,tabPane:!1}:t===!0?n={inkBar:!0,tabPane:!0}:n=Object.assign({inkBar:!0},typeof t=="object"?t:{}),n.tabPane&&(n.tabPaneMotion=Object.assign(Object.assign({},R5),{motionName:za(e,"switch")})),n}var I5=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);ot)}function T5(e,t){if(e)return e.map(r=>{var o;const a=(o=r.destroyOnHidden)!==null&&o!==void 0?o:r.destroyInactiveTabPane;return Object.assign(Object.assign({},r),{destroyInactiveTabPane:a})});const n=ur(t).map(r=>{if(s.isValidElement(r)){const{key:o,props:a}=r,i=a||{},{tab:l}=i,c=I5(i,["tab"]);return Object.assign(Object.assign({key:String(o)},c),{label:l})}return null});return N5(n)}const M5=e=>{const{componentCls:t,motionDurationSlow:n}=e;return[{[t]:{[`${t}-switch`]:{"&-appear, &-enter":{transition:"none","&-start":{opacity:0},"&-active":{opacity:1,transition:`opacity ${n}`}},"&-leave":{position:"absolute",transition:"none",inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${n}`}}}}},[ja(e,"slide-up"),ja(e,"slide-down")]]},_5=e=>{const{componentCls:t,tabsCardPadding:n,cardBg:r,cardGutter:o,colorBorderSecondary:a,itemSelectedColor:i}=e;return{[`${t}-card`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{margin:0,padding:n,background:r,border:`${U(e.lineWidth)} ${e.lineType} ${a}`,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`${t}-tab-active`]:{color:i,background:e.colorBgContainer},[`${t}-tab-focus:has(${t}-tab-btn:focus-visible)`]:ko(e,-3),[`& ${t}-tab${t}-tab-focus ${t}-tab-btn:focus-visible`]:{outline:"none"},[`${t}-ink-bar`]:{visibility:"hidden"}},[`&${t}-top, &${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginLeft:{_skip_check_:!0,value:U(o)}}}},[`&${t}-top`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)} 0 0`},[`${t}-tab-active`]:{borderBottomColor:e.colorBgContainer}}},[`&${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`0 0 ${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)}`},[`${t}-tab-active`]:{borderTopColor:e.colorBgContainer}}},[`&${t}-left, &${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginTop:U(o)}}},[`&${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${U(e.borderRadiusLG)} 0 0 ${U(e.borderRadiusLG)}`}},[`${t}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:e.colorBgContainer}}}},[`&${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)} 0`}},[`${t}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:e.colorBgContainer}}}}}}},z5=e=>{const{componentCls:t,itemHoverColor:n,dropdownEdgeChildVerticalPadding:r}=e;return{[`${t}-dropdown`]:Object.assign(Object.assign({},Jt(e)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:e.zIndexPopup,display:"block","&-hidden":{display:"none"},[`${t}-dropdown-menu`]:{maxHeight:e.tabsDropdownHeight,margin:0,padding:`${U(r)} 0`,overflowX:"hidden",overflowY:"auto",textAlign:{_skip_check_:!0,value:"left"},listStyleType:"none",backgroundColor:e.colorBgContainer,backgroundClip:"padding-box",borderRadius:e.borderRadiusLG,outline:"none",boxShadow:e.boxShadowSecondary,"&-item":Object.assign(Object.assign({},Bo),{display:"flex",alignItems:"center",minWidth:e.tabsDropdownWidth,margin:0,padding:`${U(e.paddingXXS)} ${U(e.paddingSM)}`,color:e.colorText,fontWeight:"normal",fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:"pointer",transition:`all ${e.motionDurationSlow}`,"> span":{flex:1,whiteSpace:"nowrap"},"&-remove":{flex:"none",marginLeft:{_skip_check_:!0,value:e.marginSM},color:e.colorIcon,fontSize:e.fontSizeSM,background:"transparent",border:0,cursor:"pointer","&:hover":{color:n}},"&:hover":{background:e.controlItemBgHover},"&-disabled":{"&, &:hover":{color:e.colorTextDisabled,background:"transparent",cursor:"not-allowed"}}})}})}},j5=e=>{const{componentCls:t,margin:n,colorBorderSecondary:r,horizontalMargin:o,verticalItemPadding:a,verticalItemMargin:i,calc:l}=e;return{[`${t}-top, ${t}-bottom`]:{flexDirection:"column",[`> ${t}-nav, > div > ${t}-nav`]:{margin:o,"&::before":{position:"absolute",right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${U(e.lineWidth)} ${e.lineType} ${r}`,content:"''"},[`${t}-ink-bar`]:{height:e.lineWidthBold,"&-animated":{transition:`width ${e.motionDurationSlow}, left ${e.motionDurationSlow}, + right ${e.motionDurationSlow}`}},[`${t}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:e.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowRight},[`&${t}-nav-wrap-ping-left::before`]:{opacity:1},[`&${t}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${t}-top`]:{[`> ${t}-nav, + > div > ${t}-nav`]:{"&::before":{bottom:0},[`${t}-ink-bar`]:{bottom:0}}},[`${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,marginTop:n,marginBottom:0,"&::before":{top:0},[`${t}-ink-bar`]:{top:0}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0}},[`${t}-left, ${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{flexDirection:"column",minWidth:l(e.controlHeight).mul(1.25).equal(),[`${t}-tab`]:{padding:a,textAlign:"center"},[`${t}-tab + ${t}-tab`]:{margin:i},[`${t}-nav-wrap`]:{flexDirection:"column","&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:e.controlHeight},"&::before":{top:0,boxShadow:e.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:e.boxShadowTabsOverflowBottom},[`&${t}-nav-wrap-ping-top::before`]:{opacity:1},[`&${t}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${t}-ink-bar`]:{width:e.lineWidthBold,"&-animated":{transition:`height ${e.motionDurationSlow}, top ${e.motionDurationSlow}`}},[`${t}-nav-list, ${t}-nav-operations`]:{flex:"1 0 auto",flexDirection:"column"}}},[`${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{marginLeft:{_skip_check_:!0,value:U(l(e.lineWidth).mul(-1).equal())},borderLeft:{_skip_check_:!0,value:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:e.paddingLG}}}},[`${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,[`${t}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:l(e.lineWidth).mul(-1).equal()},borderRight:{_skip_check_:!0,value:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingRight:{_skip_check_:!0,value:e.paddingLG}}}}}},L5=e=>{const{componentCls:t,cardPaddingSM:n,cardPaddingLG:r,cardHeightSM:o,cardHeightLG:a,horizontalItemPaddingSM:i,horizontalItemPaddingLG:l}=e;return{[t]:{"&-small":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:i,fontSize:e.titleFontSizeSM}}},"&-large":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:l,fontSize:e.titleFontSizeLG,lineHeight:e.lineHeightLG}}}},[`${t}-card`]:{[`&${t}-small`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:n},[`${t}-nav-add`]:{minWidth:o,minHeight:o}},[`&${t}-bottom`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`0 0 ${U(e.borderRadius)} ${U(e.borderRadius)}`}},[`&${t}-top`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`${U(e.borderRadius)} ${U(e.borderRadius)} 0 0`}},[`&${t}-right`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${U(e.borderRadius)} ${U(e.borderRadius)} 0`}}},[`&${t}-left`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${U(e.borderRadius)} 0 0 ${U(e.borderRadius)}`}}}},[`&${t}-large`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:r},[`${t}-nav-add`]:{minWidth:a,minHeight:a}}}}}},D5=e=>{const{componentCls:t,itemActiveColor:n,itemHoverColor:r,iconCls:o,tabsHorizontalItemMargin:a,horizontalItemPadding:i,itemSelectedColor:l,itemColor:c}=e,u=`${t}-tab`;return{[u]:{position:"relative",WebkitTouchCallout:"none",WebkitTapHighlightColor:"transparent",display:"inline-flex",alignItems:"center",padding:i,fontSize:e.titleFontSize,background:"transparent",border:0,outline:"none",cursor:"pointer",color:c,"&-btn, &-remove":{"&:focus:not(:focus-visible), &:active":{color:n}},"&-btn":{outline:"none",transition:`all ${e.motionDurationSlow}`,[`${u}-icon:not(:last-child)`]:{marginInlineEnd:e.marginSM}},"&-remove":Object.assign({flex:"none",marginRight:{_skip_check_:!0,value:e.calc(e.marginXXS).mul(-1).equal()},marginLeft:{_skip_check_:!0,value:e.marginXS},color:e.colorIcon,fontSize:e.fontSizeSM,background:"transparent",border:"none",outline:"none",cursor:"pointer",transition:`all ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextHeading}},ea(e)),"&:hover":{color:r},[`&${u}-active ${u}-btn`]:{color:l,textShadow:e.tabsActiveTextShadow},[`&${u}-focus ${u}-btn:focus-visible`]:ko(e),[`&${u}-disabled`]:{color:e.colorTextDisabled,cursor:"not-allowed"},[`&${u}-disabled ${u}-btn, &${u}-disabled ${t}-remove`]:{"&:focus, &:active":{color:e.colorTextDisabled}},[`& ${u}-remove ${o}`]:{margin:0},[`${o}:not(:last-child)`]:{marginRight:{_skip_check_:!0,value:e.marginSM}}},[`${u} + ${u}`]:{margin:{_skip_check_:!0,value:a}}}},B5=e=>{const{componentCls:t,tabsHorizontalItemMarginRTL:n,iconCls:r,cardGutter:o,calc:a}=e;return{[`${t}-rtl`]:{direction:"rtl",[`${t}-nav`]:{[`${t}-tab`]:{margin:{_skip_check_:!0,value:n},[`${t}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[r]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:U(e.marginSM)}},[`${t}-tab-remove`]:{marginRight:{_skip_check_:!0,value:U(e.marginXS)},marginLeft:{_skip_check_:!0,value:U(a(e.marginXXS).mul(-1).equal())},[r]:{margin:0}}}},[`&${t}-left`]:{[`> ${t}-nav`]:{order:1},[`> ${t}-content-holder`]:{order:0}},[`&${t}-right`]:{[`> ${t}-nav`]:{order:0},[`> ${t}-content-holder`]:{order:1}},[`&${t}-card${t}-top, &${t}-card${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginRight:{_skip_check_:!0,value:o},marginLeft:{_skip_check_:!0,value:0}}}}},[`${t}-dropdown-rtl`]:{direction:"rtl"},[`${t}-menu-item`]:{[`${t}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:"right"}}}}},k5=e=>{const{componentCls:t,tabsCardPadding:n,cardHeight:r,cardGutter:o,itemHoverColor:a,itemActiveColor:i,colorBorderSecondary:l}=e;return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},Jt(e)),{display:"flex",[`> ${t}-nav, > div > ${t}-nav`]:{position:"relative",display:"flex",flex:"none",alignItems:"center",[`${t}-nav-wrap`]:{position:"relative",display:"flex",flex:"auto",alignSelf:"stretch",overflow:"hidden",whiteSpace:"nowrap",transform:"translate(0)","&::before, &::after":{position:"absolute",zIndex:1,opacity:0,transition:`opacity ${e.motionDurationSlow}`,content:"''",pointerEvents:"none"}},[`${t}-nav-list`]:{position:"relative",display:"flex",transition:`opacity ${e.motionDurationSlow}`},[`${t}-nav-operations`]:{display:"flex",alignSelf:"stretch"},[`${t}-nav-operations-hidden`]:{position:"absolute",visibility:"hidden",pointerEvents:"none"},[`${t}-nav-more`]:{position:"relative",padding:n,background:"transparent",border:0,color:e.colorText,"&::after":{position:"absolute",right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:e.calc(e.controlHeightLG).div(8).equal(),transform:"translateY(100%)",content:"''"}},[`${t}-nav-add`]:Object.assign({minWidth:r,minHeight:r,marginLeft:{_skip_check_:!0,value:o},background:"transparent",border:`${U(e.lineWidth)} ${e.lineType} ${l}`,borderRadius:`${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)} 0 0`,outline:"none",cursor:"pointer",color:e.colorText,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&:hover":{color:a},"&:active, &:focus:not(:focus-visible)":{color:i}},ea(e,-3))},[`${t}-extra-content`]:{flex:"none"},[`${t}-ink-bar`]:{position:"absolute",background:e.inkBarColor,pointerEvents:"none"}}),D5(e)),{[`${t}-content`]:{position:"relative",width:"100%"},[`${t}-content-holder`]:{flex:"auto",minWidth:0,minHeight:0},[`${t}-tabpane`]:Object.assign(Object.assign({},ea(e)),{"&-hidden":{display:"none"}})}),[`${t}-centered`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-nav-wrap`]:{[`&:not([class*='${t}-nav-wrap-ping']) > ${t}-nav-list`]:{margin:"auto"}}}}}},A5=e=>{const{cardHeight:t,cardHeightSM:n,cardHeightLG:r,controlHeight:o,controlHeightLG:a}=e,i=t||a,l=n||o,c=r||a+8;return{zIndexPopup:e.zIndexPopupBase+50,cardBg:e.colorFillAlter,cardHeight:i,cardHeightSM:l,cardHeightLG:c,cardPadding:`${(i-e.fontHeight)/2-e.lineWidth}px ${e.padding}px`,cardPaddingSM:`${(l-e.fontHeight)/2-e.lineWidth}px ${e.paddingXS}px`,cardPaddingLG:`${(c-e.fontHeightLG)/2-e.lineWidth}px ${e.padding}px`,titleFontSize:e.fontSize,titleFontSizeLG:e.fontSizeLG,titleFontSizeSM:e.fontSize,inkBarColor:e.colorPrimary,horizontalMargin:`0 0 ${e.margin}px 0`,horizontalItemGutter:32,horizontalItemMargin:"",horizontalItemMarginRTL:"",horizontalItemPadding:`${e.paddingSM}px 0`,horizontalItemPaddingSM:`${e.paddingXS}px 0`,horizontalItemPaddingLG:`${e.padding}px 0`,verticalItemPadding:`${e.paddingXS}px ${e.paddingLG}px`,verticalItemMargin:`${e.margin}px 0 0 0`,itemColor:e.colorText,itemSelectedColor:e.colorPrimary,itemHoverColor:e.colorPrimaryHover,itemActiveColor:e.colorPrimaryActive,cardGutter:e.marginXXS/2}},F5=Wt("Tabs",e=>{const t=Rt(e,{tabsCardPadding:e.cardPadding,dropdownEdgeChildVerticalPadding:e.paddingXXS,tabsActiveTextShadow:"0 0 0.25px currentcolor",tabsDropdownHeight:200,tabsDropdownWidth:120,tabsHorizontalItemMargin:`0 0 0 ${U(e.horizontalItemGutter)}`,tabsHorizontalItemMarginRTL:`0 0 0 ${U(e.horizontalItemGutter)}`});return[L5(t),B5(t),j5(t),z5(t),_5(t),k5(t),M5(t)]},A5),H5=()=>null;var V5=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var t,n,r,o,a,i,l,c,u,d,f;const{type:m,className:v,rootClassName:p,size:b,onEdit:h,hideAdd:g,centered:y,addIcon:C,removeIcon:x,moreIcon:S,more:w,popupClassName:E,children:O,items:$,animated:R,style:I,indicatorSize:N,indicator:T,destroyInactiveTabPane:P,destroyOnHidden:M}=e,_=V5(e,["type","className","rootClassName","size","onEdit","hideAdd","centered","addIcon","removeIcon","moreIcon","more","popupClassName","children","items","animated","style","indicatorSize","indicator","destroyInactiveTabPane","destroyOnHidden"]),{prefixCls:z}=_,{direction:j,tabs:L,getPrefixCls:F,getPopupContainer:W}=s.useContext(lt),H=F("tabs",z),A=mr(H),[V,K,Y]=F5(H,A);let re;m==="editable-card"&&(re={onEdit:(Q,{key:Z,event:ne})=>{h==null||h(Q==="add"?ne:Z,Q)},removeIcon:(t=x??(L==null?void 0:L.removeIcon))!==null&&t!==void 0?t:s.createElement(xi,null),addIcon:(C??(L==null?void 0:L.addIcon))||s.createElement(l5,null),showAdd:g!==!0});const J=F(),ae=no(b),le=T5($,O),te=P5(H,R),q=Object.assign(Object.assign({},L==null?void 0:L.style),I),X={align:(n=T==null?void 0:T.align)!==null&&n!==void 0?n:(r=L==null?void 0:L.indicator)===null||r===void 0?void 0:r.align,size:(l=(a=(o=T==null?void 0:T.size)!==null&&o!==void 0?o:N)!==null&&a!==void 0?a:(i=L==null?void 0:L.indicator)===null||i===void 0?void 0:i.size)!==null&&l!==void 0?l:L==null?void 0:L.indicatorSize};return V(s.createElement(O5,Object.assign({direction:j,getPopupContainer:W},_,{items:le,className:G({[`${H}-${ae}`]:ae,[`${H}-card`]:["card","editable-card"].includes(m),[`${H}-editable-card`]:m==="editable-card",[`${H}-centered`]:y},L==null?void 0:L.className,v,p,K,Y,A),popupClassName:G(E,K,Y,A),style:q,editable:re,more:Object.assign({icon:(f=(d=(u=(c=L==null?void 0:L.more)===null||c===void 0?void 0:c.icon)!==null&&u!==void 0?u:L==null?void 0:L.moreIcon)!==null&&d!==void 0?d:S)!==null&&f!==void 0?f:s.createElement(yy,null),transitionName:`${J}-slide-up`},w),prefixCls:H,animated:te,indicator:X,destroyInactiveTabPane:M??P})))};YR.TabPane=H5;var W5=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var{prefixCls:t,className:n,hoverable:r=!0}=e,o=W5(e,["prefixCls","className","hoverable"]);const{getPrefixCls:a}=s.useContext(lt),i=a("card",t),l=G(`${i}-grid`,n,{[`${i}-grid-hoverable`]:r});return s.createElement("div",Object.assign({},o,{className:l}))},K5=e=>{const{antCls:t,componentCls:n,headerHeight:r,headerPadding:o,tabsMarginBottom:a}=e;return Object.assign(Object.assign({display:"flex",justifyContent:"center",flexDirection:"column",minHeight:r,marginBottom:-1,padding:`0 ${U(o)}`,color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.headerFontSize,background:e.headerBg,borderBottom:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorderSecondary}`,borderRadius:`${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)} 0 0`},Co()),{"&-wrapper":{width:"100%",display:"flex",alignItems:"center"},"&-title":Object.assign(Object.assign({display:"inline-block",flex:1},Bo),{[` + > ${n}-typography, + > ${n}-typography-edit-content + `]:{insetInlineStart:0,marginTop:0,marginBottom:0}}),[`${t}-tabs-top`]:{clear:"both",marginBottom:a,color:e.colorText,fontWeight:"normal",fontSize:e.fontSize,"&-bar":{borderBottom:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorderSecondary}`}}})},U5=e=>{const{cardPaddingBase:t,colorBorderSecondary:n,cardShadow:r,lineWidth:o}=e;return{width:"33.33%",padding:t,border:0,borderRadius:0,boxShadow:` + ${U(o)} 0 0 0 ${n}, + 0 ${U(o)} 0 0 ${n}, + ${U(o)} ${U(o)} 0 0 ${n}, + ${U(o)} 0 0 0 ${n} inset, + 0 ${U(o)} 0 0 ${n} inset; + `,transition:`all ${e.motionDurationMid}`,"&-hoverable:hover":{position:"relative",zIndex:1,boxShadow:r}}},G5=e=>{const{componentCls:t,iconCls:n,actionsLiMargin:r,cardActionsIconSize:o,colorBorderSecondary:a,actionsBg:i}=e;return Object.assign(Object.assign({margin:0,padding:0,listStyle:"none",background:i,borderTop:`${U(e.lineWidth)} ${e.lineType} ${a}`,display:"flex",borderRadius:`0 0 ${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)}`},Co()),{"& > li":{margin:r,color:e.colorTextDescription,textAlign:"center","> span":{position:"relative",display:"block",minWidth:e.calc(e.cardActionsIconSize).mul(2).equal(),fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:"pointer","&:hover":{color:e.colorPrimary,transition:`color ${e.motionDurationMid}`},[`a:not(${t}-btn), > ${n}`]:{display:"inline-block",width:"100%",color:e.colorIcon,lineHeight:U(e.fontHeight),transition:`color ${e.motionDurationMid}`,"&:hover":{color:e.colorPrimary}},[`> ${n}`]:{fontSize:o,lineHeight:U(e.calc(o).mul(e.lineHeight).equal())}},"&:not(:last-child)":{borderInlineEnd:`${U(e.lineWidth)} ${e.lineType} ${a}`}}})},q5=e=>Object.assign(Object.assign({margin:`${U(e.calc(e.marginXXS).mul(-1).equal())} 0`,display:"flex"},Co()),{"&-avatar":{paddingInlineEnd:e.padding},"&-detail":{overflow:"hidden",flex:1,"> div:not(:last-child)":{marginBottom:e.marginXS}},"&-title":Object.assign({color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG},Bo),"&-description":{color:e.colorTextDescription}}),X5=e=>{const{componentCls:t,colorFillAlter:n,headerPadding:r,bodyPadding:o}=e;return{[`${t}-head`]:{padding:`0 ${U(r)}`,background:n,"&-title":{fontSize:e.fontSize}},[`${t}-body`]:{padding:`${U(e.padding)} ${U(o)}`}}},Y5=e=>{const{componentCls:t}=e;return{overflow:"hidden",[`${t}-body`]:{userSelect:"none"}}},Q5=e=>{const{componentCls:t,cardShadow:n,cardHeadPadding:r,colorBorderSecondary:o,boxShadowTertiary:a,bodyPadding:i,extraColor:l}=e;return{[t]:Object.assign(Object.assign({},Jt(e)),{position:"relative",background:e.colorBgContainer,borderRadius:e.borderRadiusLG,[`&:not(${t}-bordered)`]:{boxShadow:a},[`${t}-head`]:K5(e),[`${t}-extra`]:{marginInlineStart:"auto",color:l,fontWeight:"normal",fontSize:e.fontSize},[`${t}-body`]:Object.assign({padding:i,borderRadius:`0 0 ${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)}`},Co()),[`${t}-grid`]:U5(e),[`${t}-cover`]:{"> *":{display:"block",width:"100%",borderRadius:`${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)} 0 0`}},[`${t}-actions`]:G5(e),[`${t}-meta`]:q5(e)}),[`${t}-bordered`]:{border:`${U(e.lineWidth)} ${e.lineType} ${o}`,[`${t}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${t}-hoverable`]:{cursor:"pointer",transition:`box-shadow ${e.motionDurationMid}, border-color ${e.motionDurationMid}`,"&:hover":{borderColor:"transparent",boxShadow:n}},[`${t}-contain-grid`]:{borderRadius:`${U(e.borderRadiusLG)} ${U(e.borderRadiusLG)} 0 0 `,[`${t}-body`]:{display:"flex",flexWrap:"wrap"},[`&:not(${t}-loading) ${t}-body`]:{marginBlockStart:e.calc(e.lineWidth).mul(-1).equal(),marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),padding:0}},[`${t}-contain-tabs`]:{[`> div${t}-head`]:{minHeight:0,[`${t}-head-title, ${t}-extra`]:{paddingTop:r}}},[`${t}-type-inner`]:X5(e),[`${t}-loading`]:Y5(e),[`${t}-rtl`]:{direction:"rtl"}}},J5=e=>{const{componentCls:t,bodyPaddingSM:n,headerPaddingSM:r,headerHeightSM:o,headerFontSizeSM:a}=e;return{[`${t}-small`]:{[`> ${t}-head`]:{minHeight:o,padding:`0 ${U(r)}`,fontSize:a,[`> ${t}-head-wrapper`]:{[`> ${t}-extra`]:{fontSize:e.fontSize}}},[`> ${t}-body`]:{padding:n}},[`${t}-small${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{paddingTop:0,display:"flex",alignItems:"center"}}}}},Z5=e=>{var t,n;return{headerBg:"transparent",headerFontSize:e.fontSizeLG,headerFontSizeSM:e.fontSize,headerHeight:e.fontSizeLG*e.lineHeightLG+e.padding*2,headerHeightSM:e.fontSize*e.lineHeight+e.paddingXS*2,actionsBg:e.colorBgContainer,actionsLiMargin:`${e.paddingSM}px 0`,tabsMarginBottom:-e.padding-e.lineWidth,extraColor:e.colorText,bodyPaddingSM:12,headerPaddingSM:12,bodyPadding:(t=e.bodyPadding)!==null&&t!==void 0?t:e.paddingLG,headerPadding:(n=e.headerPadding)!==null&&n!==void 0?n:e.paddingLG}},eH=Wt("Card",e=>{const t=Rt(e,{cardShadow:e.boxShadowCard,cardHeadPadding:e.padding,cardPaddingBase:e.paddingLG,cardActionsIconSize:e.fontSize});return[Q5(t),J5(t)]},Z5);var Mx=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{actionClasses:t,actions:n=[],actionStyle:r}=e;return s.createElement("ul",{className:t,style:r},n.map((o,a)=>{const i=`action-${a}`;return s.createElement("li",{style:{width:`${100/n.length}%`},key:i},s.createElement("span",null,o))}))},nH=s.forwardRef((e,t)=>{const{prefixCls:n,className:r,rootClassName:o,style:a,extra:i,headStyle:l={},bodyStyle:c={},title:u,loading:d,bordered:f,variant:m,size:v,type:p,cover:b,actions:h,tabList:g,children:y,activeTabKey:C,defaultActiveTabKey:x,tabBarExtraContent:S,hoverable:w,tabProps:E={},classNames:O,styles:$}=e,R=Mx(e,["prefixCls","className","rootClassName","style","extra","headStyle","bodyStyle","title","loading","bordered","variant","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps","classNames","styles"]),{getPrefixCls:I,direction:N,card:T}=s.useContext(lt),[P]=om("card",m,f),M=Se=>{var oe;(oe=e.onTabChange)===null||oe===void 0||oe.call(e,Se)},_=Se=>{var oe;return G((oe=T==null?void 0:T.classNames)===null||oe===void 0?void 0:oe[Se],O==null?void 0:O[Se])},z=Se=>{var oe;return Object.assign(Object.assign({},(oe=T==null?void 0:T.styles)===null||oe===void 0?void 0:oe[Se]),$==null?void 0:$[Se])},j=s.useMemo(()=>{let Se=!1;return s.Children.forEach(y,oe=>{(oe==null?void 0:oe.type)===QR&&(Se=!0)}),Se},[y]),L=I("card",n),[F,W,H]=eH(L),A=s.createElement(wi,{loading:!0,active:!0,paragraph:{rows:4},title:!1},y),V=C!==void 0,K=Object.assign(Object.assign({},E),{[V?"activeKey":"defaultActiveKey"]:V?C:x,tabBarExtraContent:S});let Y;const re=no(v),J=!re||re==="default"?"large":re,ae=g?s.createElement(YR,Object.assign({size:J},K,{className:`${L}-head-tabs`,onChange:M,items:g.map(Se=>{var{tab:oe}=Se,se=Mx(Se,["tab"]);return Object.assign({label:oe},se)})})):null;if(u||i||ae){const Se=G(`${L}-head`,_("header")),oe=G(`${L}-head-title`,_("title")),se=G(`${L}-extra`,_("extra")),ye=Object.assign(Object.assign({},l),z("header"));Y=s.createElement("div",{className:Se,style:ye},s.createElement("div",{className:`${L}-head-wrapper`},u&&s.createElement("div",{className:oe,style:z("title")},u),i&&s.createElement("div",{className:se,style:z("extra")},i)),ae)}const le=G(`${L}-cover`,_("cover")),te=b?s.createElement("div",{className:le,style:z("cover")},b):null,q=G(`${L}-body`,_("body")),X=Object.assign(Object.assign({},c),z("body")),Q=s.createElement("div",{className:q,style:X},d?A:y),Z=G(`${L}-actions`,_("actions")),ne=h!=null&&h.length?s.createElement(tH,{actionClasses:Z,actionStyle:z("actions"),actions:h}):null,ie=Zt(R,["onTabChange"]),fe=G(L,T==null?void 0:T.className,{[`${L}-loading`]:d,[`${L}-bordered`]:P!=="borderless",[`${L}-hoverable`]:w,[`${L}-contain-grid`]:j,[`${L}-contain-tabs`]:g==null?void 0:g.length,[`${L}-${re}`]:re,[`${L}-type-${p}`]:!!p,[`${L}-rtl`]:N==="rtl"},r,o,W,H),$e=Object.assign(Object.assign({},T==null?void 0:T.style),a);return F(s.createElement("div",Object.assign({ref:t},ie,{className:fe,style:$e}),Y,te,Q,ne))});var rH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:t,className:n,avatar:r,title:o,description:a}=e,i=rH(e,["prefixCls","className","avatar","title","description"]),{getPrefixCls:l}=s.useContext(lt),c=l("card",t),u=G(`${c}-meta`,n),d=r?s.createElement("div",{className:`${c}-meta-avatar`},r):null,f=o?s.createElement("div",{className:`${c}-meta-title`},o):null,m=a?s.createElement("div",{className:`${c}-meta-description`},a):null,v=f||m?s.createElement("div",{className:`${c}-meta-detail`},f,m):null;return s.createElement("div",Object.assign({},i,{className:u}),d,v)},pa=nH;pa.Grid=QR;pa.Meta=oH;function aH(e,t,n){var r=n||{},o=r.noTrailing,a=o===void 0?!1:o,i=r.noLeading,l=i===void 0?!1:i,c=r.debounceMode,u=c===void 0?void 0:c,d,f=!1,m=0;function v(){d&&clearTimeout(d)}function p(h){var g=h||{},y=g.upcomingOnly,C=y===void 0?!1:y;v(),f=!C}function b(){for(var h=arguments.length,g=new Array(h),y=0;ye?l?(m=Date.now(),a||(d=setTimeout(u?w:S,e))):S():a!==!0&&(d=setTimeout(u?w:S,u===void 0?e-x:e))}return b.cancel=p,b}function iH(e,t,n){var r={},o=r.atBegin,a=o===void 0?!1:o;return aH(e,t,{debounceMode:a!==!1})}function br(e,t){return e[t]}var lH=["children"];function JR(e,t){return"".concat(e,"-").concat(t)}function sH(e){return e&&e.type&&e.type.isTreeNode}function Kc(e,t){return e??t}function Pl(e){var t=e||{},n=t.title,r=t._title,o=t.key,a=t.children,i=n||"title";return{title:i,_title:r||[i],key:o||"key",children:a||"children"}}function ZR(e){function t(n){var r=ur(n);return r.map(function(o){if(!sH(o))return rn(!o,"Tree/TreeNode can only accept TreeNode as children."),null;var a=o.key,i=o.props,l=i.children,c=ut(i,lH),u=k({key:a},c),d=t(l);return d.length&&(u.children=d),u}).filter(function(o){return o})}return t(e)}function _v(e,t,n){var r=Pl(n),o=r._title,a=r.key,i=r.children,l=new Set(t===!0?[]:t),c=[];function u(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return d.map(function(m,v){for(var p=JR(f?f.pos:"0",v),b=Kc(m[a],p),h,g=0;g1&&arguments[1]!==void 0?arguments[1]:{},n=t.initWrapper,r=t.processEntity,o=t.onProcessFinished,a=t.externalGetKey,i=t.childrenPropName,l=t.fieldNames,c=arguments.length>2?arguments[2]:void 0,u=a||c,d={},f={},m={posEntities:d,keyEntities:f};return n&&(m=n(m)||m),cH(e,function(v){var p=v.node,b=v.index,h=v.pos,g=v.key,y=v.parentPos,C=v.level,x=v.nodes,S={node:p,nodes:x,index:b,key:g,pos:h,level:C},w=Kc(g,h);d[h]=S,f[w]=S,S.parent=d[y],S.parent&&(S.parent.children=S.parent.children||[],S.parent.children.push(S)),r&&r(S,m)},{externalGetKey:u,childrenPropName:i,fieldNames:l}),o&&o(m),m}function Ts(e,t){var n=t.expandedKeys,r=t.selectedKeys,o=t.loadedKeys,a=t.loadingKeys,i=t.checkedKeys,l=t.halfCheckedKeys,c=t.dragOverNodeKey,u=t.dropPosition,d=t.keyEntities,f=br(d,e),m={eventKey:e,expanded:n.indexOf(e)!==-1,selected:r.indexOf(e)!==-1,loaded:o.indexOf(e)!==-1,loading:a.indexOf(e)!==-1,checked:i.indexOf(e)!==-1,halfChecked:l.indexOf(e)!==-1,pos:String(f?f.pos:""),dragOver:c===e&&u===0,dragOverGapTop:c===e&&u===-1,dragOverGapBottom:c===e&&u===1};return m}function $n(e){var t=e.data,n=e.expanded,r=e.selected,o=e.checked,a=e.loaded,i=e.loading,l=e.halfChecked,c=e.dragOver,u=e.dragOverGapTop,d=e.dragOverGapBottom,f=e.pos,m=e.active,v=e.eventKey,p=k(k({},t),{},{expanded:n,selected:r,checked:o,loaded:a,loading:i,halfChecked:l,dragOver:c,dragOverGapTop:u,dragOverGapBottom:d,pos:f,active:m,key:v});return"props"in p||Object.defineProperty(p,"props",{get:function(){return rn(!1,"Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`."),e}}),p}function eP(e,t){var n=new Set;return e.forEach(function(r){t.has(r)||n.add(r)}),n}function uH(e){var t=e||{},n=t.disabled,r=t.disableCheckbox,o=t.checkable;return!!(n||r)||o===!1}function dH(e,t,n,r){for(var o=new Set(e),a=new Set,i=0;i<=n;i+=1){var l=t.get(i)||new Set;l.forEach(function(f){var m=f.key,v=f.node,p=f.children,b=p===void 0?[]:p;o.has(m)&&!r(v)&&b.filter(function(h){return!r(h.node)}).forEach(function(h){o.add(h.key)})})}for(var c=new Set,u=n;u>=0;u-=1){var d=t.get(u)||new Set;d.forEach(function(f){var m=f.parent,v=f.node;if(!(r(v)||!f.parent||c.has(f.parent.key))){if(r(f.parent.node)){c.add(m.key);return}var p=!0,b=!1;(m.children||[]).filter(function(h){return!r(h.node)}).forEach(function(h){var g=h.key,y=o.has(g);p&&!y&&(p=!1),!b&&(y||a.has(g))&&(b=!0)}),p&&o.add(m.key),b&&a.add(m.key),c.add(m.key)}})}return{checkedKeys:Array.from(o),halfCheckedKeys:Array.from(eP(a,o))}}function fH(e,t,n,r,o){for(var a=new Set(e),i=new Set(t),l=0;l<=r;l+=1){var c=n.get(l)||new Set;c.forEach(function(m){var v=m.key,p=m.node,b=m.children,h=b===void 0?[]:b;!a.has(v)&&!i.has(v)&&!o(p)&&h.filter(function(g){return!o(g.node)}).forEach(function(g){a.delete(g.key)})})}i=new Set;for(var u=new Set,d=r;d>=0;d-=1){var f=n.get(d)||new Set;f.forEach(function(m){var v=m.parent,p=m.node;if(!(o(p)||!m.parent||u.has(m.parent.key))){if(o(m.parent.node)){u.add(v.key);return}var b=!0,h=!1;(v.children||[]).filter(function(g){return!o(g.node)}).forEach(function(g){var y=g.key,C=a.has(y);b&&!C&&(b=!1),!h&&(C||i.has(y))&&(h=!0)}),b||a.delete(v.key),h&&i.add(v.key),u.add(v.key)}})}return{checkedKeys:Array.from(a),halfCheckedKeys:Array.from(eP(i,a))}}function ul(e,t,n,r){var o=[],a;r?a=r:a=uH;var i=new Set(e.filter(function(d){var f=!!br(n,d);return f||o.push(d),f})),l=new Map,c=0;Object.keys(n).forEach(function(d){var f=n[d],m=f.level,v=l.get(m);v||(v=new Set,l.set(m,v)),v.add(f),c=Math.max(c,m)}),rn(!o.length,"Tree missing follow keys: ".concat(o.slice(0,100).map(function(d){return"'".concat(d,"'")}).join(", ")));var u;return t===!0?u=dH(i,l,c,a):u=fH(i,t.halfCheckedKeys,l,c,a),u}const mH=e=>{const{checkboxCls:t}=e,n=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},Jt(e)),{display:"inline-flex",flexWrap:"wrap",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[n]:Object.assign(Object.assign({},Jt(e)),{display:"inline-flex",alignItems:"baseline",cursor:"pointer","&:after":{display:"inline-block",width:0,overflow:"hidden",content:"'\\a0'"},[`& + ${n}`]:{marginInlineStart:0},[`&${n}-in-form-item`]:{'input[type="checkbox"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},Jt(e)),{position:"relative",whiteSpace:"nowrap",lineHeight:1,cursor:"pointer",borderRadius:e.borderRadiusSM,alignSelf:"center",[`${t}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:Object.assign({},ko(e))},[`${t}-inner`]:{boxSizing:"border-box",display:"block",width:e.checkboxSize,height:e.checkboxSize,direction:"ltr",backgroundColor:e.colorBgContainer,border:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:"separate",transition:`all ${e.motionDurationSlow}`,"&:after":{boxSizing:"border-box",position:"absolute",top:"50%",insetInlineStart:"25%",display:"table",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${U(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:"rotate(45deg) scale(0) translate(-50%,-50%)",opacity:0,content:'""',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},"& + span":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[` + ${n}:not(${n}-disabled), + ${t}:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${n}:not(${n}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,"&:after":{opacity:1,transform:"rotate(45deg) scale(1) translate(-50%,-50%)",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[` + ${n}-checked:not(${n}-disabled), + ${t}-checked:not(${t}-disabled) + `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:"transparent"}}},{[t]:{"&-indeterminate":{"&":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,"&:after":{top:"50%",insetInlineStart:"50%",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:"translate(-50%, -50%) scale(1)",opacity:1,content:'""'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${n}-disabled`]:{cursor:"not-allowed"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:"not-allowed",pointerEvents:"none"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,"&:after":{borderColor:e.colorTextDisabled}},"&:after":{display:"none"},"& + span":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]};function tP(e,t){const n=Rt(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize});return[mH(n)]}const nP=Wt("Checkbox",(e,{prefixCls:t})=>[tP(t,e)]),rP=B.createContext(null);var vH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n;const{prefixCls:r,className:o,rootClassName:a,children:i,indeterminate:l=!1,style:c,onMouseEnter:u,onMouseLeave:d,skipGroup:f=!1,disabled:m}=e,v=vH(e,["prefixCls","className","rootClassName","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup","disabled"]),{getPrefixCls:p,direction:b,checkbox:h}=s.useContext(lt),g=s.useContext(rP),{isFormItemInput:y}=s.useContext(So),C=s.useContext(bo),x=(n=(g==null?void 0:g.disabled)||m)!==null&&n!==void 0?n:C,S=s.useRef(v.value),w=s.useRef(null),E=Or(t,w);s.useEffect(()=>{g==null||g.registerValue(v.value)},[]),s.useEffect(()=>{if(!f)return v.value!==S.current&&(g==null||g.cancelValue(S.current),g==null||g.registerValue(v.value),S.current=v.value),()=>g==null?void 0:g.cancelValue(v.value)},[v.value]),s.useEffect(()=>{var j;!((j=w.current)===null||j===void 0)&&j.input&&(w.current.input.indeterminate=l)},[l]);const O=p("checkbox",r),$=mr(O),[R,I,N]=nP(O,$),T=Object.assign({},v);g&&!f&&(T.onChange=(...j)=>{v.onChange&&v.onChange.apply(v,j),g.toggleOption&&g.toggleOption({label:i,value:v.value})},T.name=g.name,T.checked=g.value.includes(v.value));const P=G(`${O}-wrapper`,{[`${O}-rtl`]:b==="rtl",[`${O}-wrapper-checked`]:T.checked,[`${O}-wrapper-disabled`]:x,[`${O}-wrapper-in-form-item`]:y},h==null?void 0:h.className,o,a,N,$,I),M=G({[`${O}-indeterminate`]:l},Ff,I),[_,z]=kR(T.onClick);return R(s.createElement(Hf,{component:"Checkbox",disabled:x},s.createElement("label",{className:P,style:Object.assign(Object.assign({},h==null?void 0:h.style),c),onMouseEnter:u,onMouseLeave:d,onClick:_},s.createElement(BR,Object.assign({},T,{onClick:z,prefixCls:O,className:M,disabled:x,ref:E})),i!=null&&s.createElement("span",{className:`${O}-label`},i))))},oP=s.forwardRef(pH);var gH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{defaultValue:n,children:r,options:o=[],prefixCls:a,className:i,rootClassName:l,style:c,onChange:u}=e,d=gH(e,["defaultValue","children","options","prefixCls","className","rootClassName","style","onChange"]),{getPrefixCls:f,direction:m}=s.useContext(lt),[v,p]=s.useState(d.value||n||[]),[b,h]=s.useState([]);s.useEffect(()=>{"value"in d&&p(d.value||[])},[d.value]);const g=s.useMemo(()=>o.map(M=>typeof M=="string"||typeof M=="number"?{label:M,value:M}:M),[o]),y=M=>{h(_=>_.filter(z=>z!==M))},C=M=>{h(_=>[].concat(he(_),[M]))},x=M=>{const _=v.indexOf(M.value),z=he(v);_===-1?z.push(M.value):z.splice(_,1),"value"in d||p(z),u==null||u(z.filter(j=>b.includes(j)).sort((j,L)=>{const F=g.findIndex(H=>H.value===j),W=g.findIndex(H=>H.value===L);return F-W}))},S=f("checkbox",a),w=`${S}-group`,E=mr(S),[O,$,R]=nP(S,E),I=Zt(d,["value","disabled"]),N=o.length?g.map(M=>s.createElement(oP,{prefixCls:S,key:M.value.toString(),disabled:"disabled"in M?M.disabled:d.disabled,value:M.value,checked:v.includes(M.value),onChange:M.onChange,className:G(`${w}-item`,M.className),style:M.style,title:M.title,id:M.id,required:M.required},M.label)):r,T=s.useMemo(()=>({toggleOption:x,value:v,disabled:d.disabled,name:d.name,registerValue:C,cancelValue:y}),[x,v,d.disabled,d.name,C,y]),P=G(w,{[`${w}-rtl`]:m==="rtl"},i,l,R,E,$);return O(s.createElement("div",Object.assign({className:P,style:c},I,{ref:t}),s.createElement(rP.Provider,{value:T},N)))}),Da=oP;Da.Group=hH;Da.__ANT_CHECKBOX=!0;const aP=s.createContext({});var yH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{getPrefixCls:n,direction:r}=s.useContext(lt),{gutter:o,wrap:a}=s.useContext(aP),{prefixCls:i,span:l,order:c,offset:u,push:d,pull:f,className:m,children:v,flex:p,style:b}=e,h=yH(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),g=n("col",i),[y,C,x]=iB(g),S={};let w={};bH.forEach($=>{let R={};const I=e[$];typeof I=="number"?R.span=I:typeof I=="object"&&(R=I||{}),delete h[$],w=Object.assign(Object.assign({},w),{[`${g}-${$}-${R.span}`]:R.span!==void 0,[`${g}-${$}-order-${R.order}`]:R.order||R.order===0,[`${g}-${$}-offset-${R.offset}`]:R.offset||R.offset===0,[`${g}-${$}-push-${R.push}`]:R.push||R.push===0,[`${g}-${$}-pull-${R.pull}`]:R.pull||R.pull===0,[`${g}-rtl`]:r==="rtl"}),R.flex&&(w[`${g}-${$}-flex`]=!0,S[`--${g}-${$}-flex`]=_x(R.flex))});const E=G(g,{[`${g}-${l}`]:l!==void 0,[`${g}-order-${c}`]:c,[`${g}-offset-${u}`]:u,[`${g}-push-${d}`]:d,[`${g}-pull-${f}`]:f},m,w,C,x),O={};if(o&&o[0]>0){const $=o[0]/2;O.paddingLeft=$,O.paddingRight=$}return p&&(O.flex=_x(p),a===!1&&!O.minWidth&&(O.minWidth=0)),y(s.createElement("div",Object.assign({},h,{style:Object.assign(Object.assign(Object.assign({},O),b),S),className:E,ref:t}),v))});function CH(e,t){const n=[void 0,void 0],r=Array.isArray(e)?e:[e,void 0],o=t||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return r.forEach((a,i)=>{if(typeof a=="object"&&a!==null)for(let l=0;l{if(typeof e=="string"&&r(e),typeof e=="object")for(let a=0;a{o()},[JSON.stringify(e),t]),n}const iP=s.forwardRef((e,t)=>{const{prefixCls:n,justify:r,align:o,className:a,style:i,children:l,gutter:c=0,wrap:u}=e,d=SH(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:f,direction:m}=s.useContext(lt),v=ly(!0,null),p=zx(o,v),b=zx(r,v),h=f("row",n),[g,y,C]=aB(h),x=CH(c,v),S=G(h,{[`${h}-no-wrap`]:u===!1,[`${h}-${b}`]:b,[`${h}-${p}`]:p,[`${h}-rtl`]:m==="rtl"},a,y,C),w={},E=x[0]!=null&&x[0]>0?x[0]/-2:void 0;E&&(w.marginLeft=E,w.marginRight=E);const[O,$]=x;w.rowGap=$;const R=s.useMemo(()=>({gutter:[O,$],wrap:u}),[O,$,u]);return g(s.createElement(aP.Provider,{value:R},s.createElement("div",Object.assign({},d,{className:S,style:Object.assign(Object.assign({},w),i),ref:t}),l)))});function xH(e){return!!(e.addonBefore||e.addonAfter)}function wH(e){return!!(e.prefix||e.suffix||e.allowClear)}function jx(e,t,n){var r=t.cloneNode(!0),o=Object.create(e,{target:{value:r},currentTarget:{value:r}});return r.value=n,typeof t.selectionStart=="number"&&typeof t.selectionEnd=="number"&&(r.selectionStart=t.selectionStart,r.selectionEnd=t.selectionEnd),r.setSelectionRange=function(){t.setSelectionRange.apply(t,arguments)},o}function Xd(e,t,n,r){if(n){var o=t;if(t.type==="click"){o=jx(t,e,""),n(o);return}if(e.type!=="file"&&r!==void 0){o=jx(t,e,r),n(o);return}n(o)}}function lP(e,t){if(e){e.focus(t);var n=t||{},r=n.cursor;if(r){var o=e.value.length;switch(r){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(o,o);break;default:e.setSelectionRange(0,o)}}}}var sP=B.forwardRef(function(e,t){var n,r,o,a=e.inputElement,i=e.children,l=e.prefixCls,c=e.prefix,u=e.suffix,d=e.addonBefore,f=e.addonAfter,m=e.className,v=e.style,p=e.disabled,b=e.readOnly,h=e.focused,g=e.triggerFocus,y=e.allowClear,C=e.value,x=e.handleReset,S=e.hidden,w=e.classes,E=e.classNames,O=e.dataAttrs,$=e.styles,R=e.components,I=e.onClear,N=i??a,T=(R==null?void 0:R.affixWrapper)||"span",P=(R==null?void 0:R.groupWrapper)||"span",M=(R==null?void 0:R.wrapper)||"span",_=(R==null?void 0:R.groupAddon)||"span",z=s.useRef(null),j=function(Z){var ne;(ne=z.current)!==null&&ne!==void 0&&ne.contains(Z.target)&&(g==null||g())},L=wH(e),F=s.cloneElement(N,{value:C,className:G((n=N.props)===null||n===void 0?void 0:n.className,!L&&(E==null?void 0:E.variant))||null}),W=s.useRef(null);if(B.useImperativeHandle(t,function(){return{nativeElement:W.current||z.current}}),L){var H=null;if(y){var A=!p&&!b&&C,V="".concat(l,"-clear-icon"),K=We(y)==="object"&&y!==null&&y!==void 0&&y.clearIcon?y.clearIcon:"✖";H=B.createElement("button",{type:"button",tabIndex:-1,onClick:function(Z){x==null||x(Z),I==null||I()},onMouseDown:function(Z){return Z.preventDefault()},className:G(V,D(D({},"".concat(V,"-hidden"),!A),"".concat(V,"-has-suffix"),!!u))},K)}var Y="".concat(l,"-affix-wrapper"),re=G(Y,D(D(D(D(D({},"".concat(l,"-disabled"),p),"".concat(Y,"-disabled"),p),"".concat(Y,"-focused"),h),"".concat(Y,"-readonly"),b),"".concat(Y,"-input-with-clear-btn"),u&&y&&C),w==null?void 0:w.affixWrapper,E==null?void 0:E.affixWrapper,E==null?void 0:E.variant),J=(u||y)&&B.createElement("span",{className:G("".concat(l,"-suffix"),E==null?void 0:E.suffix),style:$==null?void 0:$.suffix},H,u);F=B.createElement(T,pe({className:re,style:$==null?void 0:$.affixWrapper,onClick:j},O==null?void 0:O.affixWrapper,{ref:z}),c&&B.createElement("span",{className:G("".concat(l,"-prefix"),E==null?void 0:E.prefix),style:$==null?void 0:$.prefix},c),F,J)}if(xH(e)){var ae="".concat(l,"-group"),le="".concat(ae,"-addon"),te="".concat(ae,"-wrapper"),q=G("".concat(l,"-wrapper"),ae,w==null?void 0:w.wrapper,E==null?void 0:E.wrapper),X=G(te,D({},"".concat(te,"-disabled"),p),w==null?void 0:w.group,E==null?void 0:E.groupWrapper);F=B.createElement(P,{className:X,ref:W},B.createElement(M,{className:q},d&&B.createElement(_,{className:le},d),F,f&&B.createElement(_,{className:le},f)))}return B.cloneElement(F,{className:G((r=F.props)===null||r===void 0?void 0:r.className,m)||null,style:k(k({},(o=F.props)===null||o===void 0?void 0:o.style),v),hidden:S})}),$H=["show"];function cP(e,t){return s.useMemo(function(){var n={};t&&(n.show=We(t)==="object"&&t.formatter?t.formatter:!!t),n=k(k({},n),e);var r=n,o=r.show,a=ut(r,$H);return k(k({},a),{},{show:!!o,showFormatter:typeof o=="function"?o:void 0,strategy:a.strategy||function(i){return i.length}})},[e,t])}var EH=["autoComplete","onChange","onFocus","onBlur","onPressEnter","onKeyDown","onKeyUp","prefixCls","disabled","htmlSize","className","maxLength","suffix","showCount","count","type","classes","classNames","styles","onCompositionStart","onCompositionEnd"],OH=s.forwardRef(function(e,t){var n=e.autoComplete,r=e.onChange,o=e.onFocus,a=e.onBlur,i=e.onPressEnter,l=e.onKeyDown,c=e.onKeyUp,u=e.prefixCls,d=u===void 0?"rc-input":u,f=e.disabled,m=e.htmlSize,v=e.className,p=e.maxLength,b=e.suffix,h=e.showCount,g=e.count,y=e.type,C=y===void 0?"text":y,x=e.classes,S=e.classNames,w=e.styles,E=e.onCompositionStart,O=e.onCompositionEnd,$=ut(e,EH),R=s.useState(!1),I=ee(R,2),N=I[0],T=I[1],P=s.useRef(!1),M=s.useRef(!1),_=s.useRef(null),z=s.useRef(null),j=function(ce){_.current&&lP(_.current,ce)},L=on(e.defaultValue,{value:e.value}),F=ee(L,2),W=F[0],H=F[1],A=W==null?"":String(W),V=s.useState(null),K=ee(V,2),Y=K[0],re=K[1],J=cP(g,h),ae=J.max||p,le=J.strategy(A),te=!!ae&&le>ae;s.useImperativeHandle(t,function(){var ye;return{focus:j,blur:function(){var we;(we=_.current)===null||we===void 0||we.blur()},setSelectionRange:function(we,Oe,Le){var je;(je=_.current)===null||je===void 0||je.setSelectionRange(we,Oe,Le)},select:function(){var we;(we=_.current)===null||we===void 0||we.select()},input:_.current,nativeElement:((ye=z.current)===null||ye===void 0?void 0:ye.nativeElement)||_.current}}),s.useEffect(function(){M.current&&(M.current=!1),T(function(ye){return ye&&f?!1:ye})},[f]);var q=function(ce,we,Oe){var Le=we;if(!P.current&&J.exceedFormatter&&J.max&&J.strategy(we)>J.max){if(Le=J.exceedFormatter(we,{max:J.max}),we!==Le){var je,xe;re([((je=_.current)===null||je===void 0?void 0:je.selectionStart)||0,((xe=_.current)===null||xe===void 0?void 0:xe.selectionEnd)||0])}}else if(Oe.source==="compositionEnd")return;H(Le),_.current&&Xd(_.current,ce,r,Le)};s.useEffect(function(){if(Y){var ye;(ye=_.current)===null||ye===void 0||ye.setSelectionRange.apply(ye,he(Y))}},[Y]);var X=function(ce){q(ce,ce.target.value,{source:"change"})},Q=function(ce){P.current=!1,q(ce,ce.currentTarget.value,{source:"compositionEnd"}),O==null||O(ce)},Z=function(ce){i&&ce.key==="Enter"&&!M.current&&(M.current=!0,i(ce)),l==null||l(ce)},ne=function(ce){ce.key==="Enter"&&(M.current=!1),c==null||c(ce)},ie=function(ce){T(!0),o==null||o(ce)},fe=function(ce){M.current&&(M.current=!1),T(!1),a==null||a(ce)},$e=function(ce){H(""),j(),_.current&&Xd(_.current,ce,r)},Se=te&&"".concat(d,"-out-of-range"),oe=function(){var ce=Zt(e,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","showCount","count","classes","htmlSize","styles","classNames","onClear"]);return B.createElement("input",pe({autoComplete:n},ce,{onChange:X,onFocus:ie,onBlur:fe,onKeyDown:Z,onKeyUp:ne,className:G(d,D({},"".concat(d,"-disabled"),f),S==null?void 0:S.input),style:w==null?void 0:w.input,ref:_,size:m,type:C,onCompositionStart:function(Oe){P.current=!0,E==null||E(Oe)},onCompositionEnd:Q}))},se=function(){var ce=Number(ae)>0;if(b||J.show){var we=J.showFormatter?J.showFormatter({value:A,count:le,maxLength:ae}):"".concat(le).concat(ce?" / ".concat(ae):"");return B.createElement(B.Fragment,null,J.show&&B.createElement("span",{className:G("".concat(d,"-show-count-suffix"),D({},"".concat(d,"-show-count-has-suffix"),!!b),S==null?void 0:S.count),style:k({},w==null?void 0:w.count)},we),b)}return null};return B.createElement(sP,pe({},$,{prefixCls:d,className:G(v,Se),handleReset:$e,value:A,focused:N,triggerFocus:j,suffix:se(),disabled:f,classes:x,classNames:S,styles:w,ref:z}),oe())});const uP=e=>{let t;return typeof e=="object"&&(e!=null&&e.clearIcon)?t=e:e&&(t={clearIcon:B.createElement(Mc,null)}),t};function dP(e,t){const n=s.useRef([]),r=()=>{n.current.push(setTimeout(()=>{var o,a,i,l;!((o=e.current)===null||o===void 0)&&o.input&&((a=e.current)===null||a===void 0?void 0:a.input.getAttribute("type"))==="password"&&(!((i=e.current)===null||i===void 0)&&i.input.hasAttribute("value"))&&((l=e.current)===null||l===void 0||l.input.removeAttribute("value"))}))};return s.useEffect(()=>(t&&r(),()=>n.current.forEach(o=>{o&&clearTimeout(o)})),[]),r}function RH(e){return!!(e.prefix||e.suffix||e.allowClear||e.showCount)}var PH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:n,bordered:r=!0,status:o,size:a,disabled:i,onBlur:l,onFocus:c,suffix:u,allowClear:d,addonAfter:f,addonBefore:m,className:v,style:p,styles:b,rootClassName:h,onChange:g,classNames:y,variant:C}=e,x=PH(e,["prefixCls","bordered","status","size","disabled","onBlur","onFocus","suffix","allowClear","addonAfter","addonBefore","className","style","styles","rootClassName","onChange","classNames","variant"]),{getPrefixCls:S,direction:w,allowClear:E,autoComplete:O,className:$,style:R,classNames:I,styles:N}=Rr("input"),T=S("input",n),P=s.useRef(null),M=mr(T),[_,z,j]=WR(T,h),[L]=KR(T,M),{compactSize:F,compactItemClassnames:W}=jl(T,w),H=no(fe=>{var $e;return($e=a??F)!==null&&$e!==void 0?$e:fe}),A=B.useContext(bo),V=i??A,{status:K,hasFeedback:Y,feedbackIcon:re}=s.useContext(So),J=rm(K,o),ae=RH(e)||!!Y;s.useRef(ae);const le=dP(P,!0),te=fe=>{le(),l==null||l(fe)},q=fe=>{le(),c==null||c(fe)},X=fe=>{le(),g==null||g(fe)},Q=(Y||u)&&B.createElement(B.Fragment,null,u,Y&&re),Z=uP(d??E),[ne,ie]=om("input",C,r);return _(L(B.createElement(OH,Object.assign({ref:Or(t,P),prefixCls:T,autoComplete:O},x,{disabled:V,onBlur:te,onFocus:q,style:Object.assign(Object.assign({},R),p),styles:Object.assign(Object.assign({},N),b),suffix:Q,allowClear:Z,className:G(v,h,j,M,W,$),onChange:X,addonBefore:m&&B.createElement(dc,{form:!0,space:!0},m),addonAfter:f&&B.createElement(dc,{form:!0,space:!0},f),classNames:Object.assign(Object.assign(Object.assign({},y),I),{input:G({[`${T}-sm`]:H==="small",[`${T}-lg`]:H==="large",[`${T}-rtl`]:w==="rtl"},y==null?void 0:y.input,I.input,z),variant:G({[`${T}-${ne}`]:ie},Wd(T,J)),affixWrapper:G({[`${T}-affix-wrapper-sm`]:H==="small",[`${T}-affix-wrapper-lg`]:H==="large",[`${T}-affix-wrapper-rtl`]:w==="rtl"},z),wrapper:G({[`${T}-group-rtl`]:w==="rtl"},z),groupWrapper:G({[`${T}-group-wrapper-sm`]:H==="small",[`${T}-group-wrapper-lg`]:H==="large",[`${T}-group-wrapper-rtl`]:w==="rtl",[`${T}-group-wrapper-${ne}`]:ie},Wd(`${T}-group-wrapper`,J,Y),z)})}))))});function Lx(e){return["small","middle","large"].includes(e)}function Dx(e){return e?typeof e=="number"&&!Number.isNaN(e):!1}const fP=B.createContext({latestIndex:0}),IH=fP.Provider,NH=({className:e,index:t,children:n,split:r,style:o})=>{const{latestIndex:a}=s.useContext(fP);return n==null?null:s.createElement(s.Fragment,null,s.createElement("div",{className:e,style:o},n),t{var n;const{getPrefixCls:r,direction:o,size:a,className:i,style:l,classNames:c,styles:u}=Rr("space"),{size:d=a??"small",align:f,className:m,rootClassName:v,children:p,direction:b="horizontal",prefixCls:h,split:g,style:y,wrap:C=!1,classNames:x,styles:S}=e,w=TH(e,["size","align","className","rootClassName","children","direction","prefixCls","split","style","wrap","classNames","styles"]),[E,O]=Array.isArray(d)?d:[d,d],$=Lx(O),R=Lx(E),I=Dx(O),N=Dx(E),T=ur(p,{keepEmpty:!0}),P=f===void 0&&b==="horizontal"?"center":f,M=r("space",h),[_,z,j]=J2(M),L=G(M,i,z,`${M}-${b}`,{[`${M}-rtl`]:o==="rtl",[`${M}-align-${P}`]:P,[`${M}-gap-row-${O}`]:$,[`${M}-gap-col-${E}`]:R},m,v,j),F=G(`${M}-item`,(n=x==null?void 0:x.item)!==null&&n!==void 0?n:c.item);let W=0;const H=T.map((K,Y)=>{var re;K!=null&&(W=Y);const J=(K==null?void 0:K.key)||`${F}-${Y}`;return s.createElement(NH,{className:F,key:J,index:Y,split:g,style:(re=S==null?void 0:S.item)!==null&&re!==void 0?re:u.item},K)}),A=s.useMemo(()=>({latestIndex:W}),[W]);if(T.length===0)return null;const V={};return C&&(V.flexWrap="wrap"),!R&&N&&(V.columnGap=E),!$&&I&&(V.rowGap=O),_(s.createElement("div",Object.assign({ref:t,className:L,style:Object.assign(Object.assign(Object.assign({},V),l),y)},w),s.createElement(IH,{value:A},H)))}),mP=MH;mP.Compact=Jj;var _H=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{getPopupContainer:t,getPrefixCls:n,direction:r}=s.useContext(lt),{prefixCls:o,type:a="default",danger:i,disabled:l,loading:c,onClick:u,htmlType:d,children:f,className:m,menu:v,arrow:p,autoFocus:b,overlay:h,trigger:g,align:y,open:C,onOpenChange:x,placement:S,getPopupContainer:w,href:E,icon:O=s.createElement(yy,null),title:$,buttonsRender:R=te=>te,mouseEnterDelay:I,mouseLeaveDelay:N,overlayClassName:T,overlayStyle:P,destroyOnHidden:M,destroyPopupOnHide:_,dropdownRender:z,popupRender:j}=e,L=_H(e,["prefixCls","type","danger","disabled","loading","onClick","htmlType","children","className","menu","arrow","autoFocus","overlay","trigger","align","open","onOpenChange","placement","getPopupContainer","href","icon","title","buttonsRender","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyOnHidden","destroyPopupOnHide","dropdownRender","popupRender"]),F=n("dropdown",o),W=`${F}-button`,A={menu:v,arrow:p,autoFocus:b,align:y,disabled:l,trigger:l?[]:g,onOpenChange:x,getPopupContainer:w||t,mouseEnterDelay:I,mouseLeaveDelay:N,overlayClassName:T,overlayStyle:P,destroyOnHidden:M,popupRender:j||z},{compactSize:V,compactItemClassnames:K}=jl(F,r),Y=G(W,K,m);"destroyPopupOnHide"in e&&(A.destroyPopupOnHide=_),"overlay"in e&&(A.overlay=h),"open"in e&&(A.open=C),"placement"in e?A.placement=S:A.placement=r==="rtl"?"bottomLeft":"bottomRight";const re=s.createElement(rr,{type:a,danger:i,disabled:l,loading:c,onClick:u,htmlType:d,href:E,title:$},f),J=s.createElement(rr,{type:a,danger:i,icon:O}),[ae,le]=R([re,J]);return s.createElement(mP.Compact,Object.assign({className:Y,size:V,block:!0},L),ae,s.createElement(cm,Object.assign({},A),le))};vP.__ANT_BUTTON=!0;const $y=cm;$y.Button=vP;var zH={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"},jH=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:zH}))},pP=s.forwardRef(jH);function Bx(e,t,n,r){var o=Ys.unstable_batchedUpdates?function(i){Ys.unstable_batchedUpdates(n,i)}:n;return e!=null&&e.addEventListener&&e.addEventListener(t,o,r),{remove:function(){e!=null&&e.removeEventListener&&e.removeEventListener(t,o,r)}}}const LH=e=>{const{getPrefixCls:t,direction:n}=s.useContext(lt),{prefixCls:r,className:o}=e,a=t("input-group",r),i=t("input"),[l,c,u]=KR(i),d=G(a,u,{[`${a}-lg`]:e.size==="large",[`${a}-sm`]:e.size==="small",[`${a}-compact`]:e.compact,[`${a}-rtl`]:n==="rtl"},c,o),f=s.useContext(So),m=s.useMemo(()=>Object.assign(Object.assign({},f),{isFormItemInput:!1}),[f]);return l(s.createElement("span",{className:d,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},s.createElement(So.Provider,{value:m},e.children)))},DH=e=>{const{componentCls:t,paddingXS:n}=e;return{[t]:{display:"inline-flex",alignItems:"center",flexWrap:"nowrap",columnGap:n,[`${t}-input-wrapper`]:{position:"relative",[`${t}-mask-icon`]:{position:"absolute",zIndex:"1",top:"50%",right:"50%",transform:"translate(50%, -50%)",pointerEvents:"none"},[`${t}-mask-input`]:{color:"transparent",caretColor:"var(--ant-color-text)"},[`${t}-mask-input[type=number]::-webkit-inner-spin-button`]:{"-webkit-appearance":"none",margin:0},[`${t}-mask-input[type=number]`]:{"-moz-appearance":"textfield"}},"&-rtl":{direction:"rtl"},[`${t}-input`]:{textAlign:"center",paddingInline:e.paddingXXS},[`&${t}-sm ${t}-input`]:{paddingInline:e.calc(e.paddingXXS).div(2).equal()},[`&${t}-lg ${t}-input`]:{paddingInline:e.paddingXS}}}},BH=Wt(["Input","OTP"],e=>{const t=Rt(e,Vc(e));return[DH(t)]},Wc);var kH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{className:n,value:r,onChange:o,onActiveChange:a,index:i,mask:l}=e,c=kH(e,["className","value","onChange","onActiveChange","index","mask"]),{getPrefixCls:u}=s.useContext(lt),d=u("otp"),f=typeof l=="string"?l:r,m=s.useRef(null);s.useImperativeHandle(t,()=>m.current);const v=g=>{o(i,g.target.value)},p=()=>{Lt(()=>{var g;const y=(g=m.current)===null||g===void 0?void 0:g.input;document.activeElement===y&&y&&y.select()})},b=g=>{const{key:y,ctrlKey:C,metaKey:x}=g;y==="ArrowLeft"?a(i-1):y==="ArrowRight"?a(i+1):y==="z"&&(C||x)&&g.preventDefault(),p()},h=g=>{g.key==="Backspace"&&!r&&a(i-1),p()};return s.createElement("span",{className:`${d}-input-wrapper`,role:"presentation"},l&&r!==""&&r!==void 0&&s.createElement("span",{className:`${d}-mask-icon`,"aria-hidden":"true"},f),s.createElement(Uc,Object.assign({"aria-label":`OTP Input ${i+1}`,type:l===!0?"password":"text"},c,{ref:m,value:r,onInput:v,onFocus:p,onKeyDown:b,onKeyUp:h,onMouseDown:p,onMouseUp:p,className:G(n,{[`${d}-mask-input`]:l})})))});var FH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{index:t,prefixCls:n,separator:r}=e,o=typeof r=="function"?r(t):r;return o?s.createElement("span",{className:`${n}-separator`},o):null},VH=s.forwardRef((e,t)=>{const{prefixCls:n,length:r=6,size:o,defaultValue:a,value:i,onChange:l,formatter:c,separator:u,variant:d,disabled:f,status:m,autoFocus:v,mask:p,type:b,onInput:h,inputMode:g}=e,y=FH(e,["prefixCls","length","size","defaultValue","value","onChange","formatter","separator","variant","disabled","status","autoFocus","mask","type","onInput","inputMode"]),{getPrefixCls:C,direction:x}=s.useContext(lt),S=C("otp",n),w=tr(y,{aria:!0,data:!0,attr:!0}),[E,O,$]=BH(S),R=no(V=>o??V),I=s.useContext(So),N=rm(I.status,m),T=s.useMemo(()=>Object.assign(Object.assign({},I),{status:N,hasFeedback:!1,feedbackIcon:null}),[I,N]),P=s.useRef(null),M=s.useRef({});s.useImperativeHandle(t,()=>({focus:()=>{var V;(V=M.current[0])===null||V===void 0||V.focus()},blur:()=>{var V;for(let K=0;Kc?c(V):V,[z,j]=s.useState(()=>Eu(_(a||"")));s.useEffect(()=>{i!==void 0&&j(Eu(i))},[i]);const L=Vt(V=>{j(V),h&&h(V),l&&V.length===r&&V.every(K=>K)&&V.some((K,Y)=>z[Y]!==K)&&l(V.join(""))}),F=Vt((V,K)=>{let Y=he(z);for(let J=0;J=0&&!Y[J];J-=1)Y.pop();const re=_(Y.map(J=>J||" ").join(""));return Y=Eu(re).map((J,ae)=>J===" "&&!Y[ae]?Y[ae]:J),Y}),W=(V,K)=>{var Y;const re=F(V,K),J=Math.min(V+K.length,r-1);J!==V&&re[V]!==void 0&&((Y=M.current[J])===null||Y===void 0||Y.focus()),L(re)},H=V=>{var K;(K=M.current[V])===null||K===void 0||K.focus()},A={variant:d,disabled:f,status:N,mask:p,type:b,inputMode:g};return E(s.createElement("div",Object.assign({},w,{ref:P,className:G(S,{[`${S}-sm`]:R==="small",[`${S}-lg`]:R==="large",[`${S}-rtl`]:x==="rtl"},$,O),role:"group"}),s.createElement(So.Provider,{value:T},Array.from({length:r}).map((V,K)=>{const Y=`otp-${K}`,re=z[K]||"";return s.createElement(s.Fragment,{key:Y},s.createElement(AH,Object.assign({ref:J=>{M.current[K]=J},index:K,size:R,htmlSize:1,className:`${S}-input`,onChange:W,value:re,onActiveChange:H,autoFocus:K===0&&v},A)),Ke?s.createElement(pP,null):s.createElement(UH,null),XH={click:"onClick",hover:"onMouseOver"},YH=s.forwardRef((e,t)=>{const{disabled:n,action:r="click",visibilityToggle:o=!0,iconRender:a=qH}=e,i=s.useContext(bo),l=n??i,c=typeof o=="object"&&o.visible!==void 0,[u,d]=s.useState(()=>c?o.visible:!1),f=s.useRef(null);s.useEffect(()=>{c&&d(o.visible)},[c,o]);const m=dP(f),v=()=>{var R;if(l)return;u&&m();const I=!u;d(I),typeof o=="object"&&((R=o.onVisibleChange)===null||R===void 0||R.call(o,I))},p=R=>{const I=XH[r]||"",N=a(u),T={[I]:v,className:`${R}-icon`,key:"passwordIcon",onMouseDown:P=>{P.preventDefault()},onMouseUp:P=>{P.preventDefault()}};return s.cloneElement(s.isValidElement(N)?N:s.createElement("span",null,N),T)},{className:b,prefixCls:h,inputPrefixCls:g,size:y}=e,C=GH(e,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:x}=s.useContext(lt),S=x("input",g),w=x("input-password",h),E=o&&p(w),O=G(w,b,{[`${w}-${y}`]:!!y}),$=Object.assign(Object.assign({},Zt(C,["suffix","iconRender","visibilityToggle"])),{type:u?"text":"password",className:O,prefixCls:S,suffix:E});return y&&($.size=y),s.createElement(Uc,Object.assign({ref:Or(t,f)},$))});var QH=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:n,inputPrefixCls:r,className:o,size:a,suffix:i,enterButton:l=!1,addonAfter:c,loading:u,disabled:d,onSearch:f,onChange:m,onCompositionStart:v,onCompositionEnd:p,variant:b,onPressEnter:h}=e,g=QH(e,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd","variant","onPressEnter"]),{getPrefixCls:y,direction:C}=s.useContext(lt),x=s.useRef(!1),S=y("input-search",n),w=y("input",r),{compactSize:E}=jl(S,C),O=no(A=>{var V;return(V=a??E)!==null&&V!==void 0?V:A}),$=s.useRef(null),R=A=>{A!=null&&A.target&&A.type==="click"&&f&&f(A.target.value,A,{source:"clear"}),m==null||m(A)},I=A=>{var V;document.activeElement===((V=$.current)===null||V===void 0?void 0:V.input)&&A.preventDefault()},N=A=>{var V,K;f&&f((K=(V=$.current)===null||V===void 0?void 0:V.input)===null||K===void 0?void 0:K.value,A,{source:"input"})},T=A=>{x.current||u||(h==null||h(A),N(A))},P=typeof l=="boolean"?s.createElement(ay,null):null,M=`${S}-button`;let _;const z=l||{},j=z.type&&z.type.__ANT_BUTTON===!0;j||z.type==="button"?_=nr(z,Object.assign({onMouseDown:I,onClick:A=>{var V,K;(K=(V=z==null?void 0:z.props)===null||V===void 0?void 0:V.onClick)===null||K===void 0||K.call(V,A),N(A)},key:"enterButton"},j?{className:M,size:O}:{})):_=s.createElement(rr,{className:M,color:l?"primary":"default",size:O,disabled:d,key:"enterButton",onMouseDown:I,onClick:N,loading:u,icon:P,variant:b==="borderless"||b==="filled"||b==="underlined"?"text":l?"solid":void 0},l),c&&(_=[_,nr(c,{key:"addonAfter"})]);const L=G(S,{[`${S}-rtl`]:C==="rtl",[`${S}-${O}`]:!!O,[`${S}-with-button`]:!!l},o),F=A=>{x.current=!0,v==null||v(A)},W=A=>{x.current=!1,p==null||p(A)},H=Object.assign(Object.assign({},g),{className:L,prefixCls:w,type:"search",size:O,variant:b,onPressEnter:T,onCompositionStart:F,onCompositionEnd:W,addonAfter:_,suffix:i,onChange:R,disabled:d});return s.createElement(Uc,Object.assign({ref:Or($,t)},H))});var ZH=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; + pointer-events: none !important; +`,e7=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"],zv={},Nr;function t7(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&zv[n])return zv[n];var r=window.getComputedStyle(e),o=r.getPropertyValue("box-sizing")||r.getPropertyValue("-moz-box-sizing")||r.getPropertyValue("-webkit-box-sizing"),a=parseFloat(r.getPropertyValue("padding-bottom"))+parseFloat(r.getPropertyValue("padding-top")),i=parseFloat(r.getPropertyValue("border-bottom-width"))+parseFloat(r.getPropertyValue("border-top-width")),l=e7.map(function(u){return"".concat(u,":").concat(r.getPropertyValue(u))}).join(";"),c={sizingStyle:l,paddingSize:a,borderSize:i,boxSizing:o};return t&&n&&(zv[n]=c),c}function n7(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;Nr||(Nr=document.createElement("textarea"),Nr.setAttribute("tab-index","-1"),Nr.setAttribute("aria-hidden","true"),Nr.setAttribute("name","hiddenTextarea"),document.body.appendChild(Nr)),e.getAttribute("wrap")?Nr.setAttribute("wrap",e.getAttribute("wrap")):Nr.removeAttribute("wrap");var o=t7(e,t),a=o.paddingSize,i=o.borderSize,l=o.boxSizing,c=o.sizingStyle;Nr.setAttribute("style","".concat(c,";").concat(ZH)),Nr.value=e.value||e.placeholder||"";var u=void 0,d=void 0,f,m=Nr.scrollHeight;if(l==="border-box"?m+=i:l==="content-box"&&(m-=a),n!==null||r!==null){Nr.value=" ";var v=Nr.scrollHeight-a;n!==null&&(u=v*n,l==="border-box"&&(u=u+a+i),m=Math.max(u,m)),r!==null&&(d=v*r,l==="border-box"&&(d=d+a+i),f=m>d?"":"hidden",m=Math.min(d,m))}var p={height:m,overflowY:f,resize:"none"};return u&&(p.minHeight=u),d&&(p.maxHeight=d),p}var r7=["prefixCls","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],jv=0,Lv=1,Dv=2,o7=s.forwardRef(function(e,t){var n=e,r=n.prefixCls,o=n.defaultValue,a=n.value,i=n.autoSize,l=n.onResize,c=n.className,u=n.style,d=n.disabled,f=n.onChange;n.onInternalAutoSize;var m=ut(n,r7),v=on(o,{value:a,postState:function(V){return V??""}}),p=ee(v,2),b=p[0],h=p[1],g=function(V){h(V.target.value),f==null||f(V)},y=s.useRef();s.useImperativeHandle(t,function(){return{textArea:y.current}});var C=s.useMemo(function(){return i&&We(i)==="object"?[i.minRows,i.maxRows]:[]},[i]),x=ee(C,2),S=x[0],w=x[1],E=!!i,O=function(){try{if(document.activeElement===y.current){var V=y.current,K=V.selectionStart,Y=V.selectionEnd,re=V.scrollTop;y.current.setSelectionRange(K,Y),y.current.scrollTop=re}}catch{}},$=s.useState(Dv),R=ee($,2),I=R[0],N=R[1],T=s.useState(),P=ee(T,2),M=P[0],_=P[1],z=function(){N(jv)};Ot(function(){E&&z()},[a,S,w,E]),Ot(function(){if(I===jv)N(Lv);else if(I===Lv){var A=n7(y.current,!1,S,w);N(Dv),_(A)}else O()},[I]);var j=s.useRef(),L=function(){Lt.cancel(j.current)},F=function(V){I===Dv&&(l==null||l(V),i&&(L(),j.current=Lt(function(){z()})))};s.useEffect(function(){return L},[]);var W=E?M:null,H=k(k({},u),W);return(I===jv||I===Lv)&&(H.overflowY="hidden",H.overflowX="hidden"),s.createElement(cr,{onResize:F,disabled:!(i||l)},s.createElement("textarea",pe({},m,{ref:y,style:H,className:G(r,c,D({},"".concat(r,"-disabled"),d)),disabled:d,value:b,onChange:g})))}),a7=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","showCount","count","className","style","disabled","hidden","classNames","styles","onResize","onClear","onPressEnter","readOnly","autoSize","onKeyDown"],i7=B.forwardRef(function(e,t){var n,r=e.defaultValue,o=e.value,a=e.onFocus,i=e.onBlur,l=e.onChange,c=e.allowClear,u=e.maxLength,d=e.onCompositionStart,f=e.onCompositionEnd,m=e.suffix,v=e.prefixCls,p=v===void 0?"rc-textarea":v,b=e.showCount,h=e.count,g=e.className,y=e.style,C=e.disabled,x=e.hidden,S=e.classNames,w=e.styles,E=e.onResize,O=e.onClear,$=e.onPressEnter,R=e.readOnly,I=e.autoSize,N=e.onKeyDown,T=ut(e,a7),P=on(r,{value:o,defaultValue:r}),M=ee(P,2),_=M[0],z=M[1],j=_==null?"":String(_),L=B.useState(!1),F=ee(L,2),W=F[0],H=F[1],A=B.useRef(!1),V=B.useState(null),K=ee(V,2),Y=K[0],re=K[1],J=s.useRef(null),ae=s.useRef(null),le=function(){var de;return(de=ae.current)===null||de===void 0?void 0:de.textArea},te=function(){le().focus()};s.useImperativeHandle(t,function(){var Ee;return{resizableTextArea:ae.current,focus:te,blur:function(){le().blur()},nativeElement:((Ee=J.current)===null||Ee===void 0?void 0:Ee.nativeElement)||le()}}),s.useEffect(function(){H(function(Ee){return!C&&Ee})},[C]);var q=B.useState(null),X=ee(q,2),Q=X[0],Z=X[1];B.useEffect(function(){if(Q){var Ee;(Ee=le()).setSelectionRange.apply(Ee,he(Q))}},[Q]);var ne=cP(h,b),ie=(n=ne.max)!==null&&n!==void 0?n:u,fe=Number(ie)>0,$e=ne.strategy(j),Se=!!ie&&$e>ie,oe=function(de,ge){var me=ge;!A.current&&ne.exceedFormatter&&ne.max&&ne.strategy(ge)>ne.max&&(me=ne.exceedFormatter(ge,{max:ne.max}),ge!==me&&Z([le().selectionStart||0,le().selectionEnd||0])),z(me),Xd(de.currentTarget,de,l,me)},se=function(de){A.current=!0,d==null||d(de)},ye=function(de){A.current=!1,oe(de,de.currentTarget.value),f==null||f(de)},ce=function(de){oe(de,de.target.value)},we=function(de){de.key==="Enter"&&$&&$(de),N==null||N(de)},Oe=function(de){H(!0),a==null||a(de)},Le=function(de){H(!1),i==null||i(de)},je=function(de){z(""),te(),Xd(le(),de,l)},xe=m,Pe;ne.show&&(ne.showFormatter?Pe=ne.showFormatter({value:j,count:$e,maxLength:ie}):Pe="".concat($e).concat(fe?" / ".concat(ie):""),xe=B.createElement(B.Fragment,null,xe,B.createElement("span",{className:G("".concat(p,"-data-count"),S==null?void 0:S.count),style:w==null?void 0:w.count},Pe)));var Ce=function(de){var ge;E==null||E(de),(ge=le())!==null&&ge!==void 0&&ge.style.height&&re(!0)},ve=!I&&!b&&!c;return B.createElement(sP,{ref:J,value:j,allowClear:c,handleReset:je,suffix:xe,prefixCls:p,classNames:k(k({},S),{},{affixWrapper:G(S==null?void 0:S.affixWrapper,D(D({},"".concat(p,"-show-count"),b),"".concat(p,"-textarea-allow-clear"),c))}),disabled:C,focused:W,className:G(g,Se&&"".concat(p,"-out-of-range")),style:k(k({},y),Y&&!ve?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":typeof Pe=="string"?Pe:void 0}},hidden:x,readOnly:R,onClear:O},B.createElement(o7,pe({},T,{autoSize:I,maxLength:u,onKeyDown:we,onChange:ce,onFocus:Oe,onBlur:Le,onCompositionStart:se,onCompositionEnd:ye,className:G(S==null?void 0:S.textarea),style:k(k({},w==null?void 0:w.textarea),{},{resize:y==null?void 0:y.resize}),disabled:C,prefixCls:p,onResize:Ce,ref:ae,readOnly:R})))});const l7=e=>{const{componentCls:t,paddingLG:n}=e,r=`${t}-textarea`;return{[`textarea${t}`]:{maxWidth:"100%",height:"auto",minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:"bottom",transition:`all ${e.motionDurationSlow}`,resize:"vertical",[`&${t}-mouse-active`]:{transition:`all ${e.motionDurationSlow}, height 0s, width 0s`}},[`${t}-textarea-affix-wrapper-resize-dirty`]:{width:"auto"},[r]:{position:"relative","&-show-count":{[`${t}-data-count`]:{position:"absolute",bottom:e.calc(e.fontSize).mul(e.lineHeight).mul(-1).equal(),insetInlineEnd:0,color:e.colorTextDescription,whiteSpace:"nowrap",pointerEvents:"none"}},[` + &-allow-clear > ${t}, + &-affix-wrapper${r}-has-feedback ${t} + `]:{paddingInlineEnd:n},[`&-affix-wrapper${t}-affix-wrapper`]:{padding:0,[`> textarea${t}`]:{fontSize:"inherit",border:"none",outline:"none",background:"transparent",minHeight:e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),"&:focus":{boxShadow:"none !important"}},[`${t}-suffix`]:{margin:0,"> *:not(:last-child)":{marginInline:0},[`${t}-clear-icon`]:{position:"absolute",insetInlineEnd:e.paddingInline,insetBlockStart:e.paddingXS},[`${r}-suffix`]:{position:"absolute",top:0,insetInlineEnd:e.paddingInline,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto",pointerEvents:"none"}}},[`&-affix-wrapper${t}-affix-wrapper-rtl`]:{[`${t}-suffix`]:{[`${t}-data-count`]:{direction:"ltr",insetInlineStart:0}}},[`&-affix-wrapper${t}-affix-wrapper-sm`]:{[`${t}-suffix`]:{[`${t}-clear-icon`]:{insetInlineEnd:e.paddingInlineSM}}}}}},s7=Wt(["Input","TextArea"],e=>{const t=Rt(e,Vc(e));return[l7(t)]},Wc,{resetFont:!1});var c7=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n;const{prefixCls:r,bordered:o=!0,size:a,disabled:i,status:l,allowClear:c,classNames:u,rootClassName:d,className:f,style:m,styles:v,variant:p,showCount:b,onMouseDown:h,onResize:g}=e,y=c7(e,["prefixCls","bordered","size","disabled","status","allowClear","classNames","rootClassName","className","style","styles","variant","showCount","onMouseDown","onResize"]),{getPrefixCls:C,direction:x,allowClear:S,autoComplete:w,className:E,style:O,classNames:$,styles:R}=Rr("textArea"),I=s.useContext(bo),N=i??I,{status:T,hasFeedback:P,feedbackIcon:M}=s.useContext(So),_=rm(T,l),z=s.useRef(null);s.useImperativeHandle(t,()=>{var ne;return{resizableTextArea:(ne=z.current)===null||ne===void 0?void 0:ne.resizableTextArea,focus:ie=>{var fe,$e;lP(($e=(fe=z.current)===null||fe===void 0?void 0:fe.resizableTextArea)===null||$e===void 0?void 0:$e.textArea,ie)},blur:()=>{var ie;return(ie=z.current)===null||ie===void 0?void 0:ie.blur()}}});const j=C("input",r),L=mr(j),[F,W,H]=WR(j,d),[A]=s7(j,L),{compactSize:V,compactItemClassnames:K}=jl(j,x),Y=no(ne=>{var ie;return(ie=a??V)!==null&&ie!==void 0?ie:ne}),[re,J]=om("textArea",p,o),ae=uP(c??S),[le,te]=s.useState(!1),[q,X]=s.useState(!1),Q=ne=>{te(!0),h==null||h(ne);const ie=()=>{te(!1),document.removeEventListener("mouseup",ie)};document.addEventListener("mouseup",ie)},Z=ne=>{var ie,fe;if(g==null||g(ne),le&&typeof getComputedStyle=="function"){const $e=(fe=(ie=z.current)===null||ie===void 0?void 0:ie.nativeElement)===null||fe===void 0?void 0:fe.querySelector("textarea");$e&&getComputedStyle($e).resize==="both"&&X(!0)}};return F(A(s.createElement(i7,Object.assign({autoComplete:w},y,{style:Object.assign(Object.assign({},O),m),styles:Object.assign(Object.assign({},R),v),disabled:N,allowClear:ae,className:G(H,L,f,d,K,E,q&&`${j}-textarea-affix-wrapper-resize-dirty`),classNames:Object.assign(Object.assign(Object.assign({},u),$),{textarea:G({[`${j}-sm`]:Y==="small",[`${j}-lg`]:Y==="large"},W,u==null?void 0:u.textarea,$.textarea,le&&`${j}-mouse-active`),variant:G({[`${j}-${re}`]:J},Wd(j,_)),affixWrapper:G(`${j}-textarea-affix-wrapper`,{[`${j}-affix-wrapper-rtl`]:x==="rtl",[`${j}-affix-wrapper-sm`]:Y==="small",[`${j}-affix-wrapper-lg`]:Y==="large",[`${j}-textarea-show-count`]:b||((n=e.count)===null||n===void 0?void 0:n.show)},W)}),prefixCls:j,suffix:P&&s.createElement("span",{className:`${j}-textarea-suffix`},M),showCount:b,ref:z,onResize:Z,onMouseDown:Q}))))}),Ba=Uc;Ba.Group=LH;Ba.Search=JH;Ba.TextArea=gP;Ba.Password=YH;Ba.OTP=VH;function u7(e,t,n){return typeof n=="boolean"?n:e.length?!0:ur(t).some(o=>o.type===TR)}var hP=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);os.forwardRef((a,i)=>s.createElement(r,Object.assign({ref:i,suffixCls:e,tagName:t},a)))}const Ey=s.forwardRef((e,t)=>{const{prefixCls:n,suffixCls:r,className:o,tagName:a}=e,i=hP(e,["prefixCls","suffixCls","className","tagName"]),{getPrefixCls:l}=s.useContext(lt),c=l("layout",n),[u,d,f]=NR(c),m=r?`${c}-${r}`:c;return u(s.createElement(a,Object.assign({className:G(n||m,o,d,f),ref:t},i)))}),d7=s.forwardRef((e,t)=>{const{direction:n}=s.useContext(lt),[r,o]=s.useState([]),{prefixCls:a,className:i,rootClassName:l,children:c,hasSider:u,tagName:d,style:f}=e,m=hP(e,["prefixCls","className","rootClassName","children","hasSider","tagName","style"]),v=Zt(m,["suffixCls"]),{getPrefixCls:p,className:b,style:h}=Rr("layout"),g=p("layout",a),y=u7(r,c,u),[C,x,S]=NR(g),w=G(g,{[`${g}-has-sider`]:y,[`${g}-rtl`]:n==="rtl"},b,i,l,x,S),E=s.useMemo(()=>({siderHook:{addSider:O=>{o($=>[].concat(he($),[O]))},removeSider:O=>{o($=>$.filter(R=>R!==O))}}}),[]);return C(s.createElement(RR.Provider,{value:E},s.createElement(d,Object.assign({ref:t,className:w,style:Object.assign(Object.assign({},h),f)},v),c)))}),f7=fm({tagName:"div",displayName:"Layout"})(d7),m7=fm({suffixCls:"header",tagName:"header",displayName:"Header"})(Ey),v7=fm({suffixCls:"footer",tagName:"footer",displayName:"Footer"})(Ey),p7=fm({suffixCls:"content",tagName:"main",displayName:"Content"})(Ey),ka=f7;ka.Header=m7;ka.Footer=v7;ka.Content=p7;ka.Sider=TR;ka._InternalSiderContext=sm;var g7={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"},h7=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:g7}))},kx=s.forwardRef(h7),y7={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z"}}]},name:"double-right",theme:"outlined"},b7=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:y7}))},Ax=s.forwardRef(b7),C7={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页",page_size:"页码"},S7=[10,20,50,100],x7=function(t){var n=t.pageSizeOptions,r=n===void 0?S7:n,o=t.locale,a=t.changeSize,i=t.pageSize,l=t.goButton,c=t.quickGo,u=t.rootPrefixCls,d=t.disabled,f=t.buildOptionText,m=t.showSizeChanger,v=t.sizeChangerRender,p=B.useState(""),b=ee(p,2),h=b[0],g=b[1],y=function(){return!h||Number.isNaN(h)?void 0:Number(h)},C=typeof f=="function"?f:function(N){return"".concat(N," ").concat(o.items_per_page)},x=function(T){g(T.target.value)},S=function(T){l||h===""||(g(""),!(T.relatedTarget&&(T.relatedTarget.className.indexOf("".concat(u,"-item-link"))>=0||T.relatedTarget.className.indexOf("".concat(u,"-item"))>=0))&&(c==null||c(y())))},w=function(T){h!==""&&(T.keyCode===ke.ENTER||T.type==="click")&&(g(""),c==null||c(y()))},E=function(){return r.some(function(T){return T.toString()===i.toString()})?r:r.concat([i]).sort(function(T,P){var M=Number.isNaN(Number(T))?0:Number(T),_=Number.isNaN(Number(P))?0:Number(P);return M-_})},O="".concat(u,"-options");if(!m&&!c)return null;var $=null,R=null,I=null;return m&&v&&($=v({disabled:d,size:i,onSizeChange:function(T){a==null||a(Number(T))},"aria-label":o.page_size,className:"".concat(O,"-size-changer"),options:E().map(function(N){return{label:C(N),value:N}})})),c&&(l&&(I=typeof l=="boolean"?B.createElement("button",{type:"button",onClick:w,onKeyUp:w,disabled:d,className:"".concat(O,"-quick-jumper-button")},o.jump_to_confirm):B.createElement("span",{onClick:w,onKeyUp:w},l)),R=B.createElement("div",{className:"".concat(O,"-quick-jumper")},o.jump_to,B.createElement("input",{disabled:d,type:"text",value:h,onChange:x,onKeyUp:w,onBlur:S,"aria-label":o.page}),o.page,I)),B.createElement("li",{className:O},$,R)},is=function(t){var n=t.rootPrefixCls,r=t.page,o=t.active,a=t.className,i=t.showTitle,l=t.onClick,c=t.onKeyPress,u=t.itemRender,d="".concat(n,"-item"),f=G(d,"".concat(d,"-").concat(r),D(D({},"".concat(d,"-active"),o),"".concat(d,"-disabled"),!r),a),m=function(){l(r)},v=function(h){c(h,l,r)},p=u(r,"page",B.createElement("a",{rel:"nofollow"},r));return p?B.createElement("li",{title:i?String(r):null,className:f,onClick:m,onKeyDown:v,tabIndex:0},p):null},w7=function(t,n,r){return r};function Fx(){}function Hx(e){var t=Number(e);return typeof t=="number"&&!Number.isNaN(t)&&isFinite(t)&&Math.floor(t)===t}function Ga(e,t,n){var r=typeof e>"u"?t:e;return Math.floor((n-1)/r)+1}var $7=function(t){var n=t.prefixCls,r=n===void 0?"rc-pagination":n,o=t.selectPrefixCls,a=o===void 0?"rc-select":o,i=t.className,l=t.current,c=t.defaultCurrent,u=c===void 0?1:c,d=t.total,f=d===void 0?0:d,m=t.pageSize,v=t.defaultPageSize,p=v===void 0?10:v,b=t.onChange,h=b===void 0?Fx:b,g=t.hideOnSinglePage,y=t.align,C=t.showPrevNextJumpers,x=C===void 0?!0:C,S=t.showQuickJumper,w=t.showLessItems,E=t.showTitle,O=E===void 0?!0:E,$=t.onShowSizeChange,R=$===void 0?Fx:$,I=t.locale,N=I===void 0?C7:I,T=t.style,P=t.totalBoundaryShowSizeChanger,M=P===void 0?50:P,_=t.disabled,z=t.simple,j=t.showTotal,L=t.showSizeChanger,F=L===void 0?f>M:L,W=t.sizeChangerRender,H=t.pageSizeOptions,A=t.itemRender,V=A===void 0?w7:A,K=t.jumpPrevIcon,Y=t.jumpNextIcon,re=t.prevIcon,J=t.nextIcon,ae=B.useRef(null),le=on(10,{value:m,defaultValue:p}),te=ee(le,2),q=te[0],X=te[1],Q=on(1,{value:l,defaultValue:u,postState:function(ot){return Math.max(1,Math.min(ot,Ga(void 0,q,f)))}}),Z=ee(Q,2),ne=Z[0],ie=Z[1],fe=B.useState(ne),$e=ee(fe,2),Se=$e[0],oe=$e[1];s.useEffect(function(){oe(ne)},[ne]);var se=Math.max(1,ne-(w?3:5)),ye=Math.min(Ga(void 0,q,f),ne+(w?3:5));function ce(nt,ot){var yt=nt||B.createElement("button",{type:"button","aria-label":ot,className:"".concat(r,"-item-link")});return typeof nt=="function"&&(yt=B.createElement(nt,k({},t))),yt}function we(nt){var ot=nt.target.value,yt=Ga(void 0,q,f),Xt;return ot===""?Xt=ot:Number.isNaN(Number(ot))?Xt=Se:ot>=yt?Xt=yt:Xt=Number(ot),Xt}function Oe(nt){return Hx(nt)&&nt!==ne&&Hx(f)&&f>0}var Le=f>q?S:!1;function je(nt){(nt.keyCode===ke.UP||nt.keyCode===ke.DOWN)&&nt.preventDefault()}function xe(nt){var ot=we(nt);switch(ot!==Se&&oe(ot),nt.keyCode){case ke.ENTER:ve(ot);break;case ke.UP:ve(ot-1);break;case ke.DOWN:ve(ot+1);break}}function Pe(nt){ve(we(nt))}function Ce(nt){var ot=Ga(nt,q,f),yt=ne>ot&&ot!==0?ot:ne;X(nt),oe(yt),R==null||R(ne,nt),ie(yt),h==null||h(yt,nt)}function ve(nt){if(Oe(nt)&&!_){var ot=Ga(void 0,q,f),yt=nt;return nt>ot?yt=ot:nt<1&&(yt=1),yt!==Se&&oe(yt),ie(yt),h==null||h(yt,q),yt}return ne}var Ee=ne>1,de=ne2?yt-2:0),pn=2;pnf?f:ne*q])),qe=null,Je=Ga(void 0,q,f);if(g&&f<=q)return null;var Ie=[],Ne={rootPrefixCls:r,onClick:ve,onKeyPress:Qe,showTitle:O,itemRender:V,page:-1},Xe=ne-1>0?ne-1:0,Ge=ne+1=tt*2&&ne!==3&&(Ie[0]=B.cloneElement(Ie[0],{className:G("".concat(r,"-item-after-jump-prev"),Ie[0].props.className)}),Ie.unshift(Ke)),Je-ne>=tt*2&&ne!==Je-2){var Ae=Ie[Ie.length-1];Ie[Ie.length-1]=B.cloneElement(Ae,{className:G("".concat(r,"-item-before-jump-next"),Ae.props.className)}),Ie.push(qe)}Tt!==1&&Ie.unshift(B.createElement(is,pe({},Ne,{key:1,page:1}))),It!==Je&&Ie.push(B.createElement(is,pe({},Ne,{key:Je,page:Je})))}var De=xt(Xe);if(De){var ze=!Ee||!Je;De=B.createElement("li",{title:O?N.prev_page:null,onClick:ge,tabIndex:ze?null:0,onKeyDown:pt,className:G("".concat(r,"-prev"),D({},"".concat(r,"-disabled"),ze)),"aria-disabled":ze},De)}var rt=st(Ge);if(rt){var bt,kt;z?(bt=!de,kt=Ee?0:null):(bt=!de||!Je,kt=bt?null:0),rt=B.createElement("li",{title:O?N.next_page:null,onClick:me,tabIndex:kt,onKeyDown:gt,className:G("".concat(r,"-next"),D({},"".concat(r,"-disabled"),bt)),"aria-disabled":bt},rt)}var Ut=G(r,i,D(D(D(D(D({},"".concat(r,"-start"),y==="start"),"".concat(r,"-center"),y==="center"),"".concat(r,"-end"),y==="end"),"".concat(r,"-simple"),z),"".concat(r,"-disabled"),_));return B.createElement("ul",pe({className:Ut,style:T,ref:ae},Fe),Re,De,z?Ve:Ie,rt,B.createElement(x7,{locale:N,rootPrefixCls:r,disabled:_,selectPrefixCls:a,changeSize:Ce,pageSize:q,pageSizeOptions:H,quickGo:Le?ve:null,goButton:Ue,showSizeChanger:F,sizeChangerRender:W}))};const E7=e=>{const{componentCls:t}=e;return{[`${t}-disabled`]:{"&, &:hover":{cursor:"not-allowed",[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:"not-allowed"}},"&:focus-visible":{cursor:"not-allowed",[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:"not-allowed"}}},[`&${t}-disabled`]:{cursor:"not-allowed",[`${t}-item`]:{cursor:"not-allowed",backgroundColor:"transparent","&:hover, &:active":{backgroundColor:"transparent"},a:{color:e.colorTextDisabled,backgroundColor:"transparent",border:"none",cursor:"not-allowed"},"&-active":{borderColor:e.colorBorder,backgroundColor:e.itemActiveBgDisabled,"&:hover, &:active":{backgroundColor:e.itemActiveBgDisabled},a:{color:e.itemActiveColorDisabled}}},[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:"not-allowed","&:hover, &:active":{backgroundColor:"transparent"},[`${t}-simple&`]:{backgroundColor:"transparent","&:hover, &:active":{backgroundColor:"transparent"}}},[`${t}-simple-pager`]:{color:e.colorTextDisabled},[`${t}-jump-prev, ${t}-jump-next`]:{[`${t}-item-link-icon`]:{opacity:0},[`${t}-item-ellipsis`]:{opacity:1}}},[`&${t}-simple`]:{[`${t}-prev, ${t}-next`]:{[`&${t}-disabled ${t}-item-link`]:{"&:hover, &:active":{backgroundColor:"transparent"}}}}}},O7=e=>{const{componentCls:t}=e;return{[`&${t}-mini ${t}-total-text, &${t}-mini ${t}-simple-pager`]:{height:e.itemSizeSM,lineHeight:U(e.itemSizeSM)},[`&${t}-mini ${t}-item`]:{minWidth:e.itemSizeSM,height:e.itemSizeSM,margin:0,lineHeight:U(e.calc(e.itemSizeSM).sub(2).equal())},[`&${t}-mini ${t}-prev, &${t}-mini ${t}-next`]:{minWidth:e.itemSizeSM,height:e.itemSizeSM,margin:0,lineHeight:U(e.itemSizeSM)},[`&${t}-mini:not(${t}-disabled)`]:{[`${t}-prev, ${t}-next`]:{[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover ${t}-item-link`]:{backgroundColor:"transparent"}}},[` + &${t}-mini ${t}-prev ${t}-item-link, + &${t}-mini ${t}-next ${t}-item-link + `]:{backgroundColor:"transparent",borderColor:"transparent","&::after":{height:e.itemSizeSM,lineHeight:U(e.itemSizeSM)}},[`&${t}-mini ${t}-jump-prev, &${t}-mini ${t}-jump-next`]:{height:e.itemSizeSM,marginInlineEnd:0,lineHeight:U(e.itemSizeSM)},[`&${t}-mini ${t}-options`]:{marginInlineStart:e.paginationMiniOptionsMarginInlineStart,"&-size-changer":{top:e.miniOptionsSizeChangerTop},"&-quick-jumper":{height:e.itemSizeSM,lineHeight:U(e.itemSizeSM),input:Object.assign(Object.assign({},Cy(e)),{width:e.paginationMiniQuickJumperInputWidth,height:e.controlHeightSM})}}}},R7=e=>{const{componentCls:t}=e;return{[` + &${t}-simple ${t}-prev, + &${t}-simple ${t}-next + `]:{height:e.itemSizeSM,lineHeight:U(e.itemSizeSM),verticalAlign:"top",[`${t}-item-link`]:{height:e.itemSizeSM,backgroundColor:"transparent",border:0,"&:hover":{backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive},"&::after":{height:e.itemSizeSM,lineHeight:U(e.itemSizeSM)}}},[`&${t}-simple ${t}-simple-pager`]:{display:"inline-block",height:e.itemSizeSM,marginInlineEnd:e.marginXS,input:{boxSizing:"border-box",height:"100%",padding:`0 ${U(e.paginationItemPaddingInline)}`,textAlign:"center",backgroundColor:e.itemInputBg,border:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,outline:"none",transition:`border-color ${e.motionDurationMid}`,color:"inherit","&:hover":{borderColor:e.colorPrimary},"&:focus":{borderColor:e.colorPrimaryHover,boxShadow:`${U(e.inputOutlineOffset)} 0 ${U(e.controlOutlineWidth)} ${e.controlOutline}`},"&[disabled]":{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,cursor:"not-allowed"}}}}},P7=e=>{const{componentCls:t}=e;return{[`${t}-jump-prev, ${t}-jump-next`]:{outline:0,[`${t}-item-container`]:{position:"relative",[`${t}-item-link-icon`]:{color:e.colorPrimary,fontSize:e.fontSizeSM,opacity:0,transition:`all ${e.motionDurationMid}`,"&-svg":{top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,margin:"auto"}},[`${t}-item-ellipsis`]:{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,display:"block",margin:"auto",color:e.colorTextDisabled,letterSpacing:e.paginationEllipsisLetterSpacing,textAlign:"center",textIndent:e.paginationEllipsisTextIndent,opacity:1,transition:`all ${e.motionDurationMid}`}},"&:hover":{[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}}},[` + ${t}-prev, + ${t}-jump-prev, + ${t}-jump-next + `]:{marginInlineEnd:e.marginXS},[` + ${t}-prev, + ${t}-next, + ${t}-jump-prev, + ${t}-jump-next + `]:{display:"inline-block",minWidth:e.itemSize,height:e.itemSize,color:e.colorText,fontFamily:e.fontFamily,lineHeight:U(e.itemSize),textAlign:"center",verticalAlign:"middle",listStyle:"none",borderRadius:e.borderRadius,cursor:"pointer",transition:`all ${e.motionDurationMid}`},[`${t}-prev, ${t}-next`]:{outline:0,button:{color:e.colorText,cursor:"pointer",userSelect:"none"},[`${t}-item-link`]:{display:"block",width:"100%",height:"100%",padding:0,fontSize:e.fontSizeSM,textAlign:"center",backgroundColor:"transparent",border:`${U(e.lineWidth)} ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:"none",transition:`all ${e.motionDurationMid}`},[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover`]:{[`${t}-item-link`]:{backgroundColor:"transparent"}}},[`${t}-slash`]:{marginInlineEnd:e.paginationSlashMarginInlineEnd,marginInlineStart:e.paginationSlashMarginInlineStart},[`${t}-options`]:{display:"inline-block",marginInlineStart:e.margin,verticalAlign:"middle","&-size-changer":{display:"inline-block",width:"auto"},"&-quick-jumper":{display:"inline-block",height:e.controlHeight,marginInlineStart:e.marginXS,lineHeight:U(e.controlHeight),verticalAlign:"top",input:Object.assign(Object.assign(Object.assign({},Sy(e)),by(e,{borderColor:e.colorBorder,hoverBorderColor:e.colorPrimaryHover,activeBorderColor:e.colorPrimary,activeShadow:e.activeShadow})),{"&[disabled]":Object.assign({},um(e)),width:e.calc(e.controlHeightLG).mul(1.25).equal(),height:e.controlHeight,boxSizing:"border-box",margin:0,marginInlineStart:e.marginXS,marginInlineEnd:e.marginXS})}}}},I7=e=>{const{componentCls:t}=e;return{[`${t}-item`]:{display:"inline-block",minWidth:e.itemSize,height:e.itemSize,marginInlineEnd:e.marginXS,fontFamily:e.fontFamily,lineHeight:U(e.calc(e.itemSize).sub(2).equal()),textAlign:"center",verticalAlign:"middle",listStyle:"none",backgroundColor:e.itemBg,border:`${U(e.lineWidth)} ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:0,cursor:"pointer",userSelect:"none",a:{display:"block",padding:`0 ${U(e.paginationItemPaddingInline)}`,color:e.colorText,"&:hover":{textDecoration:"none"}},[`&:not(${t}-item-active)`]:{"&:hover":{transition:`all ${e.motionDurationMid}`,backgroundColor:e.colorBgTextHover},"&:active":{backgroundColor:e.colorBgTextActive}},"&-active":{fontWeight:e.fontWeightStrong,backgroundColor:e.itemActiveBg,borderColor:e.colorPrimary,a:{color:e.colorPrimary},"&:hover":{borderColor:e.colorPrimaryHover},"&:hover a":{color:e.colorPrimaryHover}}}}},N7=e=>{const{componentCls:t}=e;return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Jt(e)),{display:"flex","&-start":{justifyContent:"start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"end"},"ul, ol":{margin:0,padding:0,listStyle:"none"},"&::after":{display:"block",clear:"both",height:0,overflow:"hidden",visibility:"hidden",content:'""'},[`${t}-total-text`]:{display:"inline-block",height:e.itemSize,marginInlineEnd:e.marginXS,lineHeight:U(e.calc(e.itemSize).sub(2).equal()),verticalAlign:"middle"}}),I7(e)),P7(e)),R7(e)),O7(e)),E7(e)),{[`@media only screen and (max-width: ${e.screenLG}px)`]:{[`${t}-item`]:{"&-after-jump-prev, &-before-jump-next":{display:"none"}}},[`@media only screen and (max-width: ${e.screenSM}px)`]:{[`${t}-options`]:{display:"none"}}}),[`&${e.componentCls}-rtl`]:{direction:"rtl"}}},T7=e=>{const{componentCls:t}=e;return{[`${t}:not(${t}-disabled)`]:{[`${t}-item`]:Object.assign({},ea(e)),[`${t}-jump-prev, ${t}-jump-next`]:{"&:focus-visible":Object.assign({[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}},ko(e))},[`${t}-prev, ${t}-next`]:{[`&:focus-visible ${t}-item-link`]:Object.assign({},ko(e))}}}},yP=e=>Object.assign({itemBg:e.colorBgContainer,itemSize:e.controlHeight,itemSizeSM:e.controlHeightSM,itemActiveBg:e.colorBgContainer,itemLinkBg:e.colorBgContainer,itemActiveColorDisabled:e.colorTextDisabled,itemActiveBgDisabled:e.controlItemBgActiveDisabled,itemInputBg:e.colorBgContainer,miniOptionsSizeChangerTop:0},Wc(e)),bP=e=>Rt(e,{inputOutlineOffset:0,paginationMiniOptionsMarginInlineStart:e.calc(e.marginXXS).div(2).equal(),paginationMiniQuickJumperInputWidth:e.calc(e.controlHeightLG).mul(1.1).equal(),paginationItemPaddingInline:e.calc(e.marginXXS).mul(1.5).equal(),paginationEllipsisLetterSpacing:e.calc(e.marginXXS).div(2).equal(),paginationSlashMarginInlineStart:e.marginSM,paginationSlashMarginInlineEnd:e.marginSM,paginationEllipsisTextIndent:"0.13em"},Vc(e)),M7=Wt("Pagination",e=>{const t=bP(e);return[N7(t),T7(t)]},yP),_7=e=>{const{componentCls:t}=e;return{[`${t}${t}-bordered${t}-disabled:not(${t}-mini)`]:{"&, &:hover":{[`${t}-item-link`]:{borderColor:e.colorBorder}},"&:focus-visible":{[`${t}-item-link`]:{borderColor:e.colorBorder}},[`${t}-item, ${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,[`&:hover:not(${t}-item-active)`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,a:{color:e.colorTextDisabled}},[`&${t}-item-active`]:{backgroundColor:e.itemActiveBgDisabled}},[`${t}-prev, ${t}-next`]:{"&:hover button":{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,color:e.colorTextDisabled},[`${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder}}},[`${t}${t}-bordered:not(${t}-mini)`]:{[`${t}-prev, ${t}-next`]:{"&:hover button":{borderColor:e.colorPrimaryHover,backgroundColor:e.itemBg},[`${t}-item-link`]:{backgroundColor:e.itemLinkBg,borderColor:e.colorBorder},[`&:hover ${t}-item-link`]:{borderColor:e.colorPrimary,backgroundColor:e.itemBg,color:e.colorPrimary},[`&${t}-disabled`]:{[`${t}-item-link`]:{borderColor:e.colorBorder,color:e.colorTextDisabled}}},[`${t}-item`]:{backgroundColor:e.itemBg,border:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,[`&:hover:not(${t}-item-active)`]:{borderColor:e.colorPrimary,backgroundColor:e.itemBg,a:{color:e.colorPrimary}},"&-active":{borderColor:e.colorPrimary}}}}},z7=Tc(["Pagination","bordered"],e=>{const t=bP(e);return[_7(t)]},yP);function Vx(e){return s.useMemo(()=>typeof e=="boolean"?[e,{}]:e&&typeof e=="object"?[!0,e]:[void 0,void 0],[e])}var j7=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{align:t,prefixCls:n,selectPrefixCls:r,className:o,rootClassName:a,style:i,size:l,locale:c,responsive:u,showSizeChanger:d,selectComponentClass:f,pageSizeOptions:m}=e,v=j7(e,["align","prefixCls","selectPrefixCls","className","rootClassName","style","size","locale","responsive","showSizeChanger","selectComponentClass","pageSizeOptions"]),{xs:p}=ly(u),[,b]=Kn(),{getPrefixCls:h,direction:g,showSizeChanger:y,className:C,style:x}=Rr("pagination"),S=h("pagination",n),[w,E,O]=M7(S),$=no(l),R=$==="small"||!!(p&&!$&&u),[I]=$o("Pagination",o2),N=Object.assign(Object.assign({},I),c),[T,P]=Vx(d),[M,_]=Vx(y),z=T??M,j=P??_,L=f||La,F=s.useMemo(()=>m?m.map(Y=>Number(Y)):void 0,[m]),W=Y=>{var re;const{disabled:J,size:ae,onSizeChange:le,"aria-label":te,className:q,options:X}=Y,{className:Q,onChange:Z}=j||{},ne=(re=X.find(ie=>String(ie.value)===String(ae)))===null||re===void 0?void 0:re.value;return s.createElement(L,Object.assign({disabled:J,showSearch:!0,popupMatchSelectWidth:!1,getPopupContainer:ie=>ie.parentNode,"aria-label":te,options:X},j,{value:ne,onChange:(ie,fe)=>{le==null||le(ie),Z==null||Z(ie,fe)},size:R?"small":"middle",className:G(q,Q)}))},H=s.useMemo(()=>{const Y=s.createElement("span",{className:`${S}-item-ellipsis`},"•••"),re=s.createElement("button",{className:`${S}-item-link`,type:"button",tabIndex:-1},g==="rtl"?s.createElement(uc,null):s.createElement(vc,null)),J=s.createElement("button",{className:`${S}-item-link`,type:"button",tabIndex:-1},g==="rtl"?s.createElement(vc,null):s.createElement(uc,null)),ae=s.createElement("a",{className:`${S}-item-link`},s.createElement("div",{className:`${S}-item-container`},g==="rtl"?s.createElement(Ax,{className:`${S}-item-link-icon`}):s.createElement(kx,{className:`${S}-item-link-icon`}),Y)),le=s.createElement("a",{className:`${S}-item-link`},s.createElement("div",{className:`${S}-item-container`},g==="rtl"?s.createElement(kx,{className:`${S}-item-link-icon`}):s.createElement(Ax,{className:`${S}-item-link-icon`}),Y));return{prevIcon:re,nextIcon:J,jumpPrevIcon:ae,jumpNextIcon:le}},[g,S]),A=h("select",r),V=G({[`${S}-${t}`]:!!t,[`${S}-mini`]:R,[`${S}-rtl`]:g==="rtl",[`${S}-bordered`]:b.wireframe},C,o,a,E,O),K=Object.assign(Object.assign({},x),i);return w(s.createElement(s.Fragment,null,b.wireframe&&s.createElement(z7,{prefixCls:S}),s.createElement($7,Object.assign({},H,v,{style:K,prefixCls:S,selectPrefixCls:A,className:V,locale:N,pageSizeOptions:F,showSizeChanger:z,sizeChangerRender:W}))))},Yd=100,CP=Yd/5,SP=Yd/2-CP/2,Bv=SP*2*Math.PI,Wx=50,Kx=e=>{const{dotClassName:t,style:n,hasCircleCls:r}=e;return s.createElement("circle",{className:G(`${t}-circle`,{[`${t}-circle-bg`]:r}),r:SP,cx:Wx,cy:Wx,strokeWidth:CP,style:n})},D7=({percent:e,prefixCls:t})=>{const n=`${t}-dot`,r=`${n}-holder`,o=`${r}-hidden`,[a,i]=s.useState(!1);Ot(()=>{e!==0&&i(!0)},[e!==0]);const l=Math.max(Math.min(e,100),0);if(!a)return null;const c={strokeDashoffset:`${Bv/4}`,strokeDasharray:`${Bv*l/100} ${Bv*(100-l)/100}`};return s.createElement("span",{className:G(r,`${n}-progress`,l<=0&&o)},s.createElement("svg",{viewBox:`0 0 ${Yd} ${Yd}`,role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":l},s.createElement(Kx,{dotClassName:n,hasCircleCls:!0}),s.createElement(Kx,{dotClassName:n,style:c})))};function B7(e){const{prefixCls:t,percent:n=0}=e,r=`${t}-dot`,o=`${r}-holder`,a=`${o}-hidden`;return s.createElement(s.Fragment,null,s.createElement("span",{className:G(o,n>0&&a)},s.createElement("span",{className:G(r,`${t}-dot-spin`)},[1,2,3,4].map(i=>s.createElement("i",{className:`${t}-dot-item`,key:i})))),s.createElement(D7,{prefixCls:t,percent:n}))}function k7(e){var t;const{prefixCls:n,indicator:r,percent:o}=e,a=`${n}-dot`;return r&&s.isValidElement(r)?nr(r,{className:G((t=r.props)===null||t===void 0?void 0:t.className,a),percent:o}):s.createElement(B7,{prefixCls:n,percent:o})}const A7=new Nt("antSpinMove",{to:{opacity:1}}),F7=new Nt("antRotate",{to:{transform:"rotate(405deg)"}}),H7=e=>{const{componentCls:t,calc:n}=e;return{[t]:Object.assign(Object.assign({},Jt(e)),{position:"absolute",display:"none",color:e.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,"&-spinning":{position:"relative",display:"inline-block",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:n(n(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${e.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},"&-nested-loading":{position:"relative",[`> div > ${t}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:e.contentHeight,[`${t}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:n(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:n(e.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${t}-dot`]:{margin:n(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:n(n(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:n(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${t}-dot`]:{margin:n(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:n(n(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:n(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:"relative",transition:`opacity ${e.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${t}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:"1em",height:"1em",fontSize:e.dotSize,display:"inline-block",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:"50% 50%",lineHeight:1,color:e.colorPrimary,"&-hidden":{transform:"scale(0.3)",opacity:0}},[`${t}-dot-progress`]:{position:"absolute",inset:0},[`${t}-dot`]:{position:"relative",display:"inline-block",fontSize:e.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:n(e.dotSize).sub(n(e.marginXXS).div(2)).div(2).equal(),height:n(e.dotSize).sub(n(e.marginXXS).div(2)).div(2).equal(),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:A7,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:F7,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(r=>`${r} ${e.motionDurationSlow} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:n(n(e.dotSizeSM).sub(n(e.marginXXS).div(2))).div(2).equal(),height:n(n(e.dotSizeSM).sub(n(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{"&, &-holder":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:n(n(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:n(n(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:"block"}})}},V7=e=>{const{controlHeightLG:t,controlHeight:n}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:t*.35,dotSizeLG:n}},W7=Wt("Spin",e=>{const t=Rt(e,{spinDotDefault:e.colorTextDescription});return[H7(t)]},V7),K7=200,Ux=[[30,.05],[70,.03],[96,.01]];function U7(e,t){const[n,r]=s.useState(0),o=s.useRef(null),a=t==="auto";return s.useEffect(()=>(a&&e&&(r(0),o.current=setInterval(()=>{r(i=>{const l=100-i;for(let c=0;c{clearInterval(o.current)}),[a,e]),a?n:t}var G7=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var t;const{prefixCls:n,spinning:r=!0,delay:o=0,className:a,rootClassName:i,size:l="default",tip:c,wrapperClassName:u,style:d,children:f,fullscreen:m=!1,indicator:v,percent:p}=e,b=G7(e,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen","indicator","percent"]),{getPrefixCls:h,direction:g,className:y,style:C,indicator:x}=Rr("spin"),S=h("spin",n),[w,E,O]=W7(S),[$,R]=s.useState(()=>r&&!q7(r,o)),I=U7($,p);s.useEffect(()=>{if(r){const j=iH(o,()=>{R(!0)});return j(),()=>{var L;(L=j==null?void 0:j.cancel)===null||L===void 0||L.call(j)}}R(!1)},[o,r]);const N=s.useMemo(()=>typeof f<"u"&&!m,[f,m]),T=G(S,y,{[`${S}-sm`]:l==="small",[`${S}-lg`]:l==="large",[`${S}-spinning`]:$,[`${S}-show-text`]:!!c,[`${S}-rtl`]:g==="rtl"},a,!m&&i,E,O),P=G(`${S}-container`,{[`${S}-blur`]:$}),M=(t=v??x)!==null&&t!==void 0?t:xP,_=Object.assign(Object.assign({},C),d),z=s.createElement("div",Object.assign({},b,{style:_,className:T,"aria-live":"polite","aria-busy":$}),s.createElement(k7,{prefixCls:S,indicator:M,percent:I}),c&&(N||m)?s.createElement("div",{className:`${S}-text`},c):null);return w(N?s.createElement("div",Object.assign({},b,{className:G(`${S}-nested-loading`,u,E,O)}),$&&s.createElement("div",{key:"loading"},z),s.createElement("div",{className:P,key:"container"},f)):m?s.createElement("div",{className:G(`${S}-fullscreen`,{[`${S}-fullscreen-show`]:$},i,E,O)},z):z)};Oy.setDefaultIndicator=e=>{xP=e};const X7=(e,t=!1)=>t&&e==null?[]:Array.isArray(e)?e:[e];let Hr=null,ni=e=>e(),gc=[],hc={};function Gx(){const{getContainer:e,duration:t,rtl:n,maxCount:r,top:o}=hc,a=(e==null?void 0:e())||document.body;return{getContainer:()=>a,duration:t,rtl:n,maxCount:r,top:o}}const Y7=B.forwardRef((e,t)=>{const{messageConfig:n,sync:r}=e,{getPrefixCls:o}=s.useContext(lt),a=hc.prefixCls||o("message"),i=s.useContext($B),[l,c]=X2(Object.assign(Object.assign(Object.assign({},n),{prefixCls:a}),i.message));return B.useImperativeHandle(t,()=>{const u=Object.assign({},l);return Object.keys(u).forEach(d=>{u[d]=(...f)=>(r(),l[d].apply(l,f))}),{instance:u,sync:r}}),c}),Q7=B.forwardRef((e,t)=>{const[n,r]=B.useState(Gx),o=()=>{r(Gx)};B.useEffect(o,[]);const a=j2(),i=a.getRootPrefixCls(),l=a.getIconPrefixCls(),c=a.getTheme(),u=B.createElement(Y7,{ref:t,sync:o,messageConfig:n});return B.createElement(ra,{prefixCls:i,iconPrefixCls:l,theme:c},a.holderRender?a.holderRender(u):u)});function mm(){if(!Hr){const e=document.createDocumentFragment(),t={fragment:e};Hr=t,ni(()=>{A0()(B.createElement(Q7,{ref:r=>{const{instance:o,sync:a}=r||{};Promise.resolve().then(()=>{!t.instance&&o&&(t.instance=o,t.sync=a,mm())})}}),e)});return}Hr.instance&&(gc.forEach(e=>{const{type:t,skipped:n}=e;if(!n)switch(t){case"open":{ni(()=>{const r=Hr.instance.open(Object.assign(Object.assign({},hc),e.config));r==null||r.then(e.resolve),e.setCloseFn(r)});break}case"destroy":ni(()=>{Hr==null||Hr.instance.destroy(e.key)});break;default:ni(()=>{var r;const o=(r=Hr.instance)[t].apply(r,he(e.args));o==null||o.then(e.resolve),e.setCloseFn(o)})}}),gc=[])}function J7(e){hc=Object.assign(Object.assign({},hc),e),ni(()=>{var t;(t=Hr==null?void 0:Hr.sync)===null||t===void 0||t.call(Hr)})}function Z7(e){const t=B0(n=>{let r;const o={type:"open",config:e,resolve:n,setCloseFn:a=>{r=a}};return gc.push(o),()=>{r?ni(()=>{r()}):o.skipped=!0}});return mm(),t}function e9(e,t){const n=B0(r=>{let o;const a={type:e,args:t,resolve:r,setCloseFn:i=>{o=i}};return gc.push(a),()=>{o?ni(()=>{o()}):a.skipped=!0}});return mm(),n}const t9=e=>{gc.push({type:"destroy",key:e}),mm()},n9=["success","info","warning","error","loading"],r9={open:Z7,destroy:t9,config:J7,useMessage:Ej,_InternalPanelDoNotUseOrYouWillBeFired:hj},Kr=r9;n9.forEach(e=>{Kr[e]=(...t)=>e9(e,t)});var o9=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:t,className:n,closeIcon:r,closable:o,type:a,title:i,children:l,footer:c}=e,u=o9(e,["prefixCls","className","closeIcon","closable","type","title","children","footer"]),{getPrefixCls:d}=s.useContext(lt),f=d(),m=t||d("modal"),v=mr(f),[p,b,h]=EO(m,v),g=`${m}-confirm`;let y={};return a?y={closable:o??!1,title:"",footer:"",children:s.createElement(RO,Object.assign({},e,{prefixCls:m,confirmPrefixCls:g,rootPrefixCls:f,content:l}))}:y={closable:o??!0,title:i,footer:c!==null&&s.createElement(SO,Object.assign({},e)),children:l},p(s.createElement(cO,Object.assign({prefixCls:m,className:G(b,`${m}-pure-panel`,a&&g,a&&`${g}-${a}`,n,h,v)},u,{closeIcon:CO(m,r),closable:o},y)))},i9=LO(a9);function wP(e){return kc(TO(e))}const Eo=OO;Eo.useModal=wB;Eo.info=function(t){return kc(MO(t))};Eo.success=function(t){return kc(_O(t))};Eo.error=function(t){return kc(zO(t))};Eo.warning=wP;Eo.warn=wP;Eo.confirm=function(t){return kc(jO(t))};Eo.destroyAll=function(){for(;ti.length;){const t=ti.pop();t&&t()}};Eo.config=yB;Eo._InternalPanelDoNotUseOrYouWillBeFired=i9;const l9=e=>{const{componentCls:t,iconCls:n,antCls:r,zIndexPopup:o,colorText:a,colorWarning:i,marginXXS:l,marginXS:c,fontSize:u,fontWeightStrong:d,colorTextHeading:f}=e;return{[t]:{zIndex:o,[`&${r}-popover`]:{fontSize:u},[`${t}-message`]:{marginBottom:c,display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${t}-message-icon ${n}`]:{color:i,fontSize:u,lineHeight:1,marginInlineEnd:c},[`${t}-title`]:{fontWeight:d,color:f,"&:only-child":{fontWeight:"normal"}},[`${t}-description`]:{marginTop:l,color:a}},[`${t}-buttons`]:{textAlign:"end",whiteSpace:"nowrap",button:{marginInlineStart:c}}}}},s9=e=>{const{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},$P=Wt("Popconfirm",e=>l9(e),s9,{resetStyle:!1});var c9=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:t,okButtonProps:n,cancelButtonProps:r,title:o,description:a,cancelText:i,okText:l,okType:c="primary",icon:u=s.createElement(Df,null),showCancel:d=!0,close:f,onConfirm:m,onCancel:v,onPopupClick:p}=e,{getPrefixCls:b}=s.useContext(lt),[h]=$o("Popconfirm",yo.Popconfirm),g=Rl(o),y=Rl(a);return s.createElement("div",{className:`${t}-inner-content`,onClick:p},s.createElement("div",{className:`${t}-message`},u&&s.createElement("span",{className:`${t}-message-icon`},u),s.createElement("div",{className:`${t}-message-text`},g&&s.createElement("div",{className:`${t}-title`},g),y&&s.createElement("div",{className:`${t}-description`},y))),s.createElement("div",{className:`${t}-buttons`},d&&s.createElement(rr,Object.assign({onClick:v,size:"small"},r),i||(h==null?void 0:h.cancelText)),s.createElement(Y0,{buttonProps:Object.assign(Object.assign({size:"small"},H0(c)),n),actionFn:m,close:f,prefixCls:b("btn"),quitOnNullishReturnValue:!0,emitEvent:!0},l||(h==null?void 0:h.okText))))},u9=e=>{const{prefixCls:t,placement:n,className:r,style:o}=e,a=c9(e,["prefixCls","placement","className","style"]),{getPrefixCls:i}=s.useContext(lt),l=i("popconfirm",t),[c]=$P(l);return c(s.createElement(mR,{placement:n,className:G(l,r),style:o,content:s.createElement(EP,Object.assign({prefixCls:l},a))}))};var d9=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n,r;const{prefixCls:o,placement:a="top",trigger:i="click",okType:l="primary",icon:c=s.createElement(Df,null),children:u,overlayClassName:d,onOpenChange:f,onVisibleChange:m,overlayStyle:v,styles:p,classNames:b}=e,h=d9(e,["prefixCls","placement","trigger","okType","icon","children","overlayClassName","onOpenChange","onVisibleChange","overlayStyle","styles","classNames"]),{getPrefixCls:g,className:y,style:C,classNames:x,styles:S}=Rr("popconfirm"),[w,E]=on(!1,{value:(n=e.open)!==null&&n!==void 0?n:e.visible,defaultValue:(r=e.defaultOpen)!==null&&r!==void 0?r:e.defaultVisible}),O=(z,j)=>{E(z,!0),m==null||m(z),f==null||f(z,j)},$=z=>{O(!1,z)},R=z=>{var j;return(j=e.onConfirm)===null||j===void 0?void 0:j.call(void 0,z)},I=z=>{var j;O(!1,z),(j=e.onCancel)===null||j===void 0||j.call(void 0,z)},N=(z,j)=>{const{disabled:L=!1}=e;L||O(z,j)},T=g("popconfirm",o),P=G(T,y,d,x.root,b==null?void 0:b.root),M=G(x.body,b==null?void 0:b.body),[_]=$P(T);return _(s.createElement(vR,Object.assign({},Zt(h,["title"]),{trigger:i,placement:a,onOpenChange:N,open:w,ref:t,classNames:{root:P,body:M},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},S.root),C),v),p==null?void 0:p.root),body:Object.assign(Object.assign({},S.body),p==null?void 0:p.body)},content:s.createElement(EP,Object.assign({okType:l,icon:c},e,{prefixCls:T,close:$,onConfirm:R,onCancel:I})),"data-popover-inject":!0}),u))}),OP=f9;OP._InternalPanelDoNotUseOrYouWillBeFired=u9;var m9={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},v9=function(){var t=s.useRef([]),n=s.useRef(null);return s.useEffect(function(){var r=Date.now(),o=!1;t.current.forEach(function(a){if(a){o=!0;var i=a.style;i.transitionDuration=".3s, .3s, .3s, .06s",n.current&&r-n.current<100&&(i.transitionDuration="0s, 0s")}}),o&&(n.current=Date.now())}),t.current},qx=0,p9=Bn();function g9(){var e;return p9?(e=qx,qx+=1):e="TEST_OR_SSR",e}const h9=function(e){var t=s.useState(),n=ee(t,2),r=n[0],o=n[1];return s.useEffect(function(){o("rc_progress_".concat(g9()))},[]),e||r};var Xx=function(t){var n=t.bg,r=t.children;return s.createElement("div",{style:{width:"100%",height:"100%",background:n}},r)};function Yx(e,t){return Object.keys(e).map(function(n){var r=parseFloat(n),o="".concat(Math.floor(r*t),"%");return"".concat(e[n]," ").concat(o)})}var y9=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.color,o=e.gradientId,a=e.radius,i=e.style,l=e.ptg,c=e.strokeLinecap,u=e.strokeWidth,d=e.size,f=e.gapDegree,m=r&&We(r)==="object",v=m?"#FFF":void 0,p=d/2,b=s.createElement("circle",{className:"".concat(n,"-circle-path"),r:a,cx:p,cy:p,stroke:v,strokeLinecap:c,strokeWidth:u,opacity:l===0?0:1,style:i,ref:t});if(!m)return b;var h="".concat(o,"-conic"),g=f?"".concat(180+f/2,"deg"):"0deg",y=Yx(r,(360-f)/360),C=Yx(r,1),x="conic-gradient(from ".concat(g,", ").concat(y.join(", "),")"),S="linear-gradient(to ".concat(f?"bottom":"top",", ").concat(C.join(", "),")");return s.createElement(s.Fragment,null,s.createElement("mask",{id:h},b),s.createElement("foreignObject",{x:0,y:0,width:d,height:d,mask:"url(#".concat(h,")")},s.createElement(Xx,{bg:S},s.createElement(Xx,{bg:x}))))}),gs=100,kv=function(t,n,r,o,a,i,l,c,u,d){var f=arguments.length>10&&arguments[10]!==void 0?arguments[10]:0,m=r/100*360*((360-i)/360),v=i===0?0:{bottom:0,top:180,left:90,right:-90}[l],p=(100-o)/100*n;u==="round"&&o!==100&&(p+=d/2,p>=n&&(p=n-.01));var b=gs/2;return{stroke:typeof c=="string"?c:void 0,strokeDasharray:"".concat(n,"px ").concat(t),strokeDashoffset:p+f,transform:"rotate(".concat(a+m+v,"deg)"),transformOrigin:"".concat(b,"px ").concat(b,"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",fillOpacity:0}},b9=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function Qx(e){var t=e??[];return Array.isArray(t)?t:[t]}var C9=function(t){var n=k(k({},m9),t),r=n.id,o=n.prefixCls,a=n.steps,i=n.strokeWidth,l=n.trailWidth,c=n.gapDegree,u=c===void 0?0:c,d=n.gapPosition,f=n.trailColor,m=n.strokeLinecap,v=n.style,p=n.className,b=n.strokeColor,h=n.percent,g=ut(n,b9),y=gs/2,C=h9(r),x="".concat(C,"-gradient"),S=y-i/2,w=Math.PI*2*S,E=u>0?90+u/2:-90,O=w*((360-u)/360),$=We(a)==="object"?a:{count:a,gap:2},R=$.count,I=$.gap,N=Qx(h),T=Qx(b),P=T.find(function(W){return W&&We(W)==="object"}),M=P&&We(P)==="object",_=M?"butt":m,z=kv(w,O,0,100,E,u,d,f,_,i),j=v9(),L=function(){var H=0;return N.map(function(A,V){var K=T[V]||T[T.length-1],Y=kv(w,O,H,A,E,u,d,K,_,i);return H+=A,s.createElement(y9,{key:V,color:K,ptg:A,radius:S,prefixCls:o,gradientId:x,style:Y,strokeLinecap:_,strokeWidth:i,gapDegree:u,ref:function(J){j[V]=J},size:gs})}).reverse()},F=function(){var H=Math.round(R*(N[0]/100)),A=100/R,V=0;return new Array(R).fill(null).map(function(K,Y){var re=Y<=H-1?T[0]:f,J=re&&We(re)==="object"?"url(#".concat(x,")"):void 0,ae=kv(w,O,V,A,E,u,d,re,"butt",i,I);return V+=(O-ae.strokeDashoffset+I)*100/O,s.createElement("circle",{key:Y,className:"".concat(o,"-circle-path"),r:S,cx:y,cy:y,stroke:J,strokeWidth:i,opacity:1,style:ae,ref:function(te){j[Y]=te}})})};return s.createElement("svg",pe({className:G("".concat(o,"-circle"),p),viewBox:"0 0 ".concat(gs," ").concat(gs),style:v,id:r,role:"presentation"},g),!R&&s.createElement("circle",{className:"".concat(o,"-circle-trail"),r:S,cx:y,cy:y,stroke:f,strokeLinecap:_,strokeWidth:l||i,style:z}),R?F():L())};function Na(e){return!e||e<0?0:e>100?100:e}function Qd({success:e,successPercent:t}){let n=t;return e&&"progress"in e&&(n=e.progress),e&&"percent"in e&&(n=e.percent),n}const S9=({percent:e,success:t,successPercent:n})=>{const r=Na(Qd({success:t,successPercent:n}));return[r,Na(Na(e)-r)]},x9=({success:e={},strokeColor:t})=>{const{strokeColor:n}=e;return[n||ll.green,t||null]},vm=(e,t,n)=>{var r,o,a,i;let l=-1,c=-1;if(t==="step"){const u=n.steps,d=n.strokeWidth;typeof e=="string"||typeof e>"u"?(l=e==="small"?2:14,c=d??8):typeof e=="number"?[l,c]=[e,e]:[l=14,c=8]=Array.isArray(e)?e:[e.width,e.height],l*=u}else if(t==="line"){const u=n==null?void 0:n.strokeWidth;typeof e=="string"||typeof e>"u"?c=u||(e==="small"?6:8):typeof e=="number"?[l,c]=[e,e]:[l=-1,c=8]=Array.isArray(e)?e:[e.width,e.height]}else(t==="circle"||t==="dashboard")&&(typeof e=="string"||typeof e>"u"?[l,c]=e==="small"?[60,60]:[120,120]:typeof e=="number"?[l,c]=[e,e]:Array.isArray(e)&&(l=(o=(r=e[0])!==null&&r!==void 0?r:e[1])!==null&&o!==void 0?o:120,c=(i=(a=e[0])!==null&&a!==void 0?a:e[1])!==null&&i!==void 0?i:120));return[l,c]},w9=3,$9=e=>w9/e*100,E9=e=>{const{prefixCls:t,trailColor:n=null,strokeLinecap:r="round",gapPosition:o,gapDegree:a,width:i=120,type:l,children:c,success:u,size:d=i,steps:f}=e,[m,v]=vm(d,"circle");let{strokeWidth:p}=e;p===void 0&&(p=Math.max($9(m),6));const b={width:m,height:v,fontSize:m*.15+6},h=s.useMemo(()=>{if(a||a===0)return a;if(l==="dashboard")return 75},[a,l]),g=S9(e),y=o||l==="dashboard"&&"bottom"||void 0,C=Object.prototype.toString.call(e.strokeColor)==="[object Object]",x=x9({success:u,strokeColor:e.strokeColor}),S=G(`${t}-inner`,{[`${t}-circle-gradient`]:C}),w=s.createElement(C9,{steps:f,percent:f?g[1]:g,strokeWidth:p,trailWidth:p,strokeColor:f?x[1]:x,strokeLinecap:r,trailColor:n,prefixCls:t,gapDegree:h,gapPosition:y}),E=m<=20,O=s.createElement("div",{className:S,style:b},w,!E&&c);return E?s.createElement(xo,{title:c},O):O},Jd="--progress-line-stroke-color",RP="--progress-percent",Jx=e=>{const t=e?"100%":"-100%";return new Nt(`antProgress${e?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${t}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${t}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},O9=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:Object.assign(Object.assign({},Jt(e)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:e.fontSize},[`${t}-outer`]:{display:"inline-flex",alignItems:"center",width:"100%"},[`${t}-inner`]:{position:"relative",display:"inline-block",width:"100%",flex:1,overflow:"hidden",verticalAlign:"middle",backgroundColor:e.remainingColor,borderRadius:e.lineBorderRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.defaultColor}},[`${t}-success-bg, ${t}-bg`]:{position:"relative",background:e.defaultColor,borderRadius:e.lineBorderRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-layout-bottom`]:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",[`${t}-text`]:{width:"max-content",marginInlineStart:0,marginTop:e.marginXXS}},[`${t}-bg`]:{overflow:"hidden","&::after":{content:'""',background:{_multi_value_:!0,value:["inherit",`var(${Jd})`]},height:"100%",width:`calc(1 / var(${RP}) * 100%)`,display:"block"},[`&${t}-bg-inner`]:{minWidth:"max-content","&::after":{content:"none"},[`${t}-text-inner`]:{color:e.colorWhite,[`&${t}-text-bright`]:{color:"rgba(0, 0, 0, 0.45)"}}}},[`${t}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:"inline-block",marginInlineStart:e.marginXS,color:e.colorText,lineHeight:1,width:"2em",whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[n]:{fontSize:e.fontSize},[`&${t}-text-outer`]:{width:"max-content"},[`&${t}-text-outer${t}-text-start`]:{width:"max-content",marginInlineStart:0,marginInlineEnd:e.marginXS}},[`${t}-text-inner`]:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",marginInlineStart:0,padding:`0 ${U(e.paddingXXS)}`,[`&${t}-text-start`]:{justifyContent:"start"},[`&${t}-text-end`]:{justifyContent:"end"}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:"absolute",inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.lineBorderRadius,opacity:0,animationName:Jx(),animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${t}-rtl${t}-status-active`]:{[`${t}-bg::before`]:{animationName:Jx(!0)}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}},R9=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.remainingColor},[`&${t}-circle ${t}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${t}-circle ${t}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:e.circleTextColor,fontSize:e.circleTextFontSize,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[n]:{fontSize:e.circleIconFontSize}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:"bottom"}}}},P9=e=>{const{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.remainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.defaultColor}}}}}},I9=e=>{const{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}},N9=e=>({circleTextColor:e.colorText,defaultColor:e.colorInfo,remainingColor:e.colorFillSecondary,lineBorderRadius:100,circleTextFontSize:"1em",circleIconFontSize:`${e.fontSize/e.fontSizeSM}em`}),T9=Wt("Progress",e=>{const t=e.calc(e.marginXXS).div(2).equal(),n=Rt(e,{progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:"2.4s"});return[O9(n),R9(n),P9(n),I9(n)]},N9);var M9=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{let t=[];return Object.keys(e).forEach(n=>{const r=parseFloat(n.replace(/%/g,""));Number.isNaN(r)||t.push({key:r,value:e[n]})}),t=t.sort((n,r)=>n.key-r.key),t.map(({key:n,value:r})=>`${r} ${n}%`).join(", ")},z9=(e,t)=>{const{from:n=ll.blue,to:r=ll.blue,direction:o=t==="rtl"?"to left":"to right"}=e,a=M9(e,["from","to","direction"]);if(Object.keys(a).length!==0){const l=_9(a),c=`linear-gradient(${o}, ${l})`;return{background:c,[Jd]:c}}const i=`linear-gradient(${o}, ${n}, ${r})`;return{background:i,[Jd]:i}},j9=e=>{const{prefixCls:t,direction:n,percent:r,size:o,strokeWidth:a,strokeColor:i,strokeLinecap:l="round",children:c,trailColor:u=null,percentPosition:d,success:f}=e,{align:m,type:v}=d,p=i&&typeof i!="string"?z9(i,n):{[Jd]:i,background:i},b=l==="square"||l==="butt"?0:void 0,h=o??[-1,a||(o==="small"?6:8)],[g,y]=vm(h,"line",{strokeWidth:a}),C={backgroundColor:u||void 0,borderRadius:b},x=Object.assign(Object.assign({width:`${Na(r)}%`,height:y,borderRadius:b},p),{[RP]:Na(r)/100}),S=Qd(e),w={width:`${Na(S)}%`,height:y,borderRadius:b,backgroundColor:f==null?void 0:f.strokeColor},E={width:g<0?"100%":g},O=s.createElement("div",{className:`${t}-inner`,style:C},s.createElement("div",{className:G(`${t}-bg`,`${t}-bg-${v}`),style:x},v==="inner"&&c),S!==void 0&&s.createElement("div",{className:`${t}-success-bg`,style:w})),$=v==="outer"&&m==="start",R=v==="outer"&&m==="end";return v==="outer"&&m==="center"?s.createElement("div",{className:`${t}-layout-bottom`},O,c):s.createElement("div",{className:`${t}-outer`,style:E},$&&c,O,R&&c)},L9=e=>{const{size:t,steps:n,rounding:r=Math.round,percent:o=0,strokeWidth:a=8,strokeColor:i,trailColor:l=null,prefixCls:c,children:u}=e,d=r(n*(o/100)),m=t??[t==="small"?2:14,a],[v,p]=vm(m,"step",{steps:n,strokeWidth:a}),b=v/n,h=Array.from({length:n});for(let g=0;g{const{prefixCls:n,className:r,rootClassName:o,steps:a,strokeColor:i,percent:l=0,size:c="default",showInfo:u=!0,type:d="line",status:f,format:m,style:v,percentPosition:p={}}=e,b=D9(e,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style","percentPosition"]),{align:h="end",type:g="outer"}=p,y=Array.isArray(i)?i[0]:i,C=typeof i=="string"||Array.isArray(i)?i:void 0,x=s.useMemo(()=>{if(y){const L=typeof y=="string"?y:Object.values(y)[0];return new zt(L).isLight()}return!1},[i]),S=s.useMemo(()=>{var L,F;const W=Qd(e);return parseInt(W!==void 0?(L=W??0)===null||L===void 0?void 0:L.toString():(F=l??0)===null||F===void 0?void 0:F.toString(),10)},[l,e.success,e.successPercent]),w=s.useMemo(()=>!B9.includes(f)&&S>=100?"success":f||"normal",[f,S]),{getPrefixCls:E,direction:O,progress:$}=s.useContext(lt),R=E("progress",n),[I,N,T]=T9(R),P=d==="line",M=P&&!a,_=s.useMemo(()=>{if(!u)return null;const L=Qd(e);let F;const W=m||(A=>`${A}%`),H=P&&x&&g==="inner";return g==="inner"||m||w!=="exception"&&w!=="success"?F=W(Na(l),Na(L)):w==="exception"?F=P?s.createElement(Mc,null):s.createElement(xi,null):w==="success"&&(F=P?s.createElement(D0,null):s.createElement(oy,null)),s.createElement("span",{className:G(`${R}-text`,{[`${R}-text-bright`]:H,[`${R}-text-${h}`]:M,[`${R}-text-${g}`]:M}),title:typeof F=="string"?F:void 0},F)},[u,l,S,w,d,R,m]);let z;d==="line"?z=a?s.createElement(L9,Object.assign({},e,{strokeColor:C,prefixCls:R,steps:typeof a=="object"?a.count:a}),_):s.createElement(j9,Object.assign({},e,{strokeColor:y,prefixCls:R,direction:O,percentPosition:{align:h,type:g}}),_):(d==="circle"||d==="dashboard")&&(z=s.createElement(E9,Object.assign({},e,{strokeColor:y,prefixCls:R,progressStatus:w}),_));const j=G(R,`${R}-status-${w}`,{[`${R}-${d==="dashboard"&&"circle"||d}`]:d!=="line",[`${R}-inline-circle`]:d==="circle"&&vm(c,"circle")[0]<=20,[`${R}-line`]:M,[`${R}-line-align-${h}`]:M,[`${R}-line-position-${g}`]:M,[`${R}-steps`]:a,[`${R}-show-info`]:u,[`${R}-${c}`]:typeof c=="string",[`${R}-rtl`]:O==="rtl"},$==null?void 0:$.className,r,o,N,T);return I(s.createElement("div",Object.assign({ref:t,style:Object.assign(Object.assign({},$==null?void 0:$.style),v),className:j,role:"progressbar","aria-valuenow":S,"aria-valuemin":0,"aria-valuemax":100},Zt(b,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),z))});var k9={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z"}}]},name:"bar-chart",theme:"outlined"},A9=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:k9}))},F9=s.forwardRef(A9),H9={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"filled"},V9=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:H9}))},W9=s.forwardRef(V9),K9={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"outlined"},U9=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:K9}))},G9=s.forwardRef(U9),q9={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"}}]},name:"caret-up",theme:"outlined"},X9=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:q9}))},Y9=s.forwardRef(X9),Q9={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"cluster",theme:"outlined"},J9=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:Q9}))},Z9=s.forwardRef(J9),eV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"}}]},name:"copy",theme:"outlined"},tV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:eV}))},nV=s.forwardRef(tV),rV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},oV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:rV}))},aV=s.forwardRef(oV),iV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"download",theme:"outlined"},lV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:iV}))},sV=s.forwardRef(lV),cV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"}}]},name:"edit",theme:"outlined"},uV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:cV}))},dV=s.forwardRef(uV),fV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z"}}]},name:"enter",theme:"outlined"},mV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:fV}))},vV=s.forwardRef(mV),pV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file",theme:"outlined"},gV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:pV}))},IP=s.forwardRef(gV),hV={icon:function(t,n){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z",fill:n}},{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z",fill:t}}]}},name:"file",theme:"twotone"},yV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:hV}))},bV=s.forwardRef(yV),CV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"}}]},name:"filter",theme:"filled"},SV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:CV}))},xV=s.forwardRef(SV),wV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"}}]},name:"folder-open",theme:"outlined"},$V=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:wV}))},EV=s.forwardRef($V),OV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"}}]},name:"folder",theme:"outlined"},RV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:OV}))},PV=s.forwardRef(RV),IV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z"}}]},name:"holder",theme:"outlined"},NV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:IV}))},TV=s.forwardRef(NV),MV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"}}]},name:"home",theme:"outlined"},_V=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:MV}))},zV=s.forwardRef(_V),jV={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0060.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z"}}]},name:"inbox",theme:"outlined"},LV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:jV}))},DV=s.forwardRef(LV),BV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"minus-square",theme:"outlined"},kV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:BV}))},AV=s.forwardRef(kV),FV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z"}}]},name:"paper-clip",theme:"outlined"},HV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:FV}))},VV=s.forwardRef(HV),WV={icon:function(t,n){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z",fill:t}},{tag:"path",attrs:{d:"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z",fill:n}},{tag:"path",attrs:{d:"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z",fill:n}},{tag:"path",attrs:{d:"M276 368a28 28 0 1056 0 28 28 0 10-56 0z",fill:n}},{tag:"path",attrs:{d:"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z",fill:t}}]}},name:"picture",theme:"twotone"},KV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:WV}))},UV=s.forwardRef(KV),GV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"plus-square",theme:"outlined"},qV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:GV}))},XV=s.forwardRef(qV),YV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z"}}]},name:"stop",theme:"outlined"},QV=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:YV}))},JV=s.forwardRef(QV),ZV={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"upload",theme:"outlined"},eW=function(t,n){return s.createElement(Ct,pe({},t,{ref:n,icon:ZV}))},tW=s.forwardRef(eW),Vo={},Gc="rc-table-internal-hook";function Ry(e){var t=s.createContext(void 0),n=function(o){var a=o.value,i=o.children,l=s.useRef(a);l.current=a;var c=s.useState(function(){return{getValue:function(){return l.current},listeners:new Set}}),u=ee(c,1),d=u[0];return Ot(function(){Yr.unstable_batchedUpdates(function(){d.listeners.forEach(function(f){f(a)})})},[a]),s.createElement(t.Provider,{value:d},i)};return{Context:t,Provider:n,defaultValue:e}}function Wn(e,t){var n=Vt(typeof t=="function"?t:function(f){if(t===void 0)return f;if(!Array.isArray(t))return f[t];var m={};return t.forEach(function(v){m[v]=f[v]}),m}),r=s.useContext(e==null?void 0:e.Context),o=r||{},a=o.listeners,i=o.getValue,l=s.useRef();l.current=n(r?i():e==null?void 0:e.defaultValue);var c=s.useState({}),u=ee(c,2),d=u[1];return Ot(function(){if(!r)return;function f(m){var v=n(m);Do(l.current,v,!0)||d({})}return a.add(f),function(){a.delete(f)}},[r]),l.current}function nW(){var e=s.createContext(null);function t(){return s.useContext(e)}function n(o,a){var i=Lo(o),l=function(u,d){var f=i?{ref:d}:{},m=s.useRef(0),v=s.useRef(u),p=t();return p!==null?s.createElement(o,pe({},u,f)):((!a||a(v.current,u))&&(m.current+=1),v.current=u,s.createElement(e.Provider,{value:m.current},s.createElement(o,pe({},u,f))))};return i?s.forwardRef(l):l}function r(o,a){var i=Lo(o),l=function(u,d){var f=i?{ref:d}:{};return t(),s.createElement(o,pe({},u,f))};return i?s.memo(s.forwardRef(l),a):s.memo(l,a)}return{makeImmutable:n,responseImmutable:r,useImmutableMark:t}}var Py=nW(),NP=Py.makeImmutable,kl=Py.responseImmutable,rW=Py.useImmutableMark,vr=Ry(),TP=s.createContext({renderWithProps:!1}),oW="RC_TABLE_KEY";function aW(e){return e==null?[]:Array.isArray(e)?e:[e]}function pm(e){var t=[],n={};return e.forEach(function(r){for(var o=r||{},a=o.key,i=o.dataIndex,l=a||aW(i).join("-")||oW;n[l];)l="".concat(l,"_next");n[l]=!0,t.push(l)}),t}function lh(e){return e!=null}function iW(e){return typeof e=="number"&&!Number.isNaN(e)}function lW(e){return e&&We(e)==="object"&&!Array.isArray(e)&&!s.isValidElement(e)}function sW(e,t,n,r,o,a){var i=s.useContext(TP),l=rW(),c=bi(function(){if(lh(r))return[r];var u=t==null||t===""?[]:Array.isArray(t)?t:[t],d=_r(e,u),f=d,m=void 0;if(o){var v=o(d,e,n);lW(v)?(f=v.children,m=v.props,i.renderWithProps=!0):f=v}return[f,m]},[l,e,r,t,o,n],function(u,d){if(a){var f=ee(u,2),m=f[1],v=ee(d,2),p=v[1];return a(p,m)}return i.renderWithProps?!0:!Do(u,d,!0)});return c}function cW(e,t,n,r){var o=e+t-1;return e<=r&&o>=n}function uW(e,t){return Wn(vr,function(n){var r=cW(e,t||1,n.hoverStartRow,n.hoverEndRow);return[r,n.onHover]})}var dW=function(t){var n=t.ellipsis,r=t.rowType,o=t.children,a,i=n===!0?{showTitle:!0}:n;return i&&(i.showTitle||r==="header")&&(typeof o=="string"||typeof o=="number"?a=o.toString():s.isValidElement(o)&&typeof o.props.children=="string"&&(a=o.props.children)),a};function fW(e){var t,n,r,o,a,i,l,c,u=e.component,d=e.children,f=e.ellipsis,m=e.scope,v=e.prefixCls,p=e.className,b=e.align,h=e.record,g=e.render,y=e.dataIndex,C=e.renderIndex,x=e.shouldCellUpdate,S=e.index,w=e.rowType,E=e.colSpan,O=e.rowSpan,$=e.fixLeft,R=e.fixRight,I=e.firstFixLeft,N=e.lastFixLeft,T=e.firstFixRight,P=e.lastFixRight,M=e.appendNode,_=e.additionalProps,z=_===void 0?{}:_,j=e.isSticky,L="".concat(v,"-cell"),F=Wn(vr,["supportSticky","allColumnsFixedLeft","rowHoverable"]),W=F.supportSticky,H=F.allColumnsFixedLeft,A=F.rowHoverable,V=sW(h,y,C,d,g,x),K=ee(V,2),Y=K[0],re=K[1],J={},ae=typeof $=="number"&&W,le=typeof R=="number"&&W;ae&&(J.position="sticky",J.left=$),le&&(J.position="sticky",J.right=R);var te=(t=(n=(r=re==null?void 0:re.colSpan)!==null&&r!==void 0?r:z.colSpan)!==null&&n!==void 0?n:E)!==null&&t!==void 0?t:1,q=(o=(a=(i=re==null?void 0:re.rowSpan)!==null&&i!==void 0?i:z.rowSpan)!==null&&a!==void 0?a:O)!==null&&o!==void 0?o:1,X=uW(S,q),Q=ee(X,2),Z=Q[0],ne=Q[1],ie=Vt(function(ce){var we;h&&ne(S,S+q-1),z==null||(we=z.onMouseEnter)===null||we===void 0||we.call(z,ce)}),fe=Vt(function(ce){var we;h&&ne(-1,-1),z==null||(we=z.onMouseLeave)===null||we===void 0||we.call(z,ce)});if(te===0||q===0)return null;var $e=(l=z.title)!==null&&l!==void 0?l:dW({rowType:w,ellipsis:f,children:Y}),Se=G(L,p,(c={},D(D(D(D(D(D(D(D(D(D(c,"".concat(L,"-fix-left"),ae&&W),"".concat(L,"-fix-left-first"),I&&W),"".concat(L,"-fix-left-last"),N&&W),"".concat(L,"-fix-left-all"),N&&H&&W),"".concat(L,"-fix-right"),le&&W),"".concat(L,"-fix-right-first"),T&&W),"".concat(L,"-fix-right-last"),P&&W),"".concat(L,"-ellipsis"),f),"".concat(L,"-with-append"),M),"".concat(L,"-fix-sticky"),(ae||le)&&j&&W),D(c,"".concat(L,"-row-hover"),!re&&Z)),z.className,re==null?void 0:re.className),oe={};b&&(oe.textAlign=b);var se=k(k(k(k({},re==null?void 0:re.style),J),oe),z.style),ye=Y;return We(ye)==="object"&&!Array.isArray(ye)&&!s.isValidElement(ye)&&(ye=null),f&&(N||T)&&(ye=s.createElement("span",{className:"".concat(L,"-content")},ye)),s.createElement(u,pe({},re,z,{className:Se,style:se,title:$e,scope:m,onMouseEnter:A?ie:void 0,onMouseLeave:A?fe:void 0,colSpan:te!==1?te:null,rowSpan:q!==1?q:null}),M,ye)}const Al=s.memo(fW);function Iy(e,t,n,r,o){var a=n[e]||{},i=n[t]||{},l,c;a.fixed==="left"?l=r.left[o==="rtl"?t:e]:i.fixed==="right"&&(c=r.right[o==="rtl"?e:t]);var u=!1,d=!1,f=!1,m=!1,v=n[t+1],p=n[e-1],b=v&&!v.fixed||p&&!p.fixed||n.every(function(x){return x.fixed==="left"});if(o==="rtl"){if(l!==void 0){var h=p&&p.fixed==="left";m=!h&&b}else if(c!==void 0){var g=v&&v.fixed==="right";f=!g&&b}}else if(l!==void 0){var y=v&&v.fixed==="left";u=!y&&b}else if(c!==void 0){var C=p&&p.fixed==="right";d=!C&&b}return{fixLeft:l,fixRight:c,lastFixLeft:u,firstFixRight:d,lastFixRight:f,firstFixLeft:m,isSticky:r.isSticky}}var MP=s.createContext({});function mW(e){var t=e.className,n=e.index,r=e.children,o=e.colSpan,a=o===void 0?1:o,i=e.rowSpan,l=e.align,c=Wn(vr,["prefixCls","direction"]),u=c.prefixCls,d=c.direction,f=s.useContext(MP),m=f.scrollColumnIndex,v=f.stickyOffsets,p=f.flattenColumns,b=n+a-1,h=b+1===m?a+1:a,g=Iy(n,n+h-1,p,v,d);return s.createElement(Al,pe({className:t,index:n,component:"td",prefixCls:u,record:null,dataIndex:null,align:l,colSpan:h,rowSpan:i,render:function(){return r}},g))}var vW=["children"];function pW(e){var t=e.children,n=ut(e,vW);return s.createElement("tr",n,t)}function gm(e){var t=e.children;return t}gm.Row=pW;gm.Cell=mW;function gW(e){var t=e.children,n=e.stickyOffsets,r=e.flattenColumns,o=Wn(vr,"prefixCls"),a=r.length-1,i=r[a],l=s.useMemo(function(){return{stickyOffsets:n,flattenColumns:r,scrollColumnIndex:i!=null&&i.scrollbar?a:null}},[i,r,a,n]);return s.createElement(MP.Provider,{value:l},s.createElement("tfoot",{className:"".concat(o,"-summary")},t))}const Ou=kl(gW);var _P=gm;function hW(e){return null}function yW(e){return null}function zP(e,t,n,r,o,a,i){var l=a(t,i);e.push({record:t,indent:n,index:i,rowKey:l});var c=o==null?void 0:o.has(l);if(t&&Array.isArray(t[r])&&c)for(var u=0;u1?I-1:0),T=1;T5&&arguments[5]!==void 0?arguments[5]:[],l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0,c=e.record,u=e.prefixCls,d=e.columnsKey,f=e.fixedInfoList,m=e.expandIconColumnIndex,v=e.nestExpandable,p=e.indentSize,b=e.expandIcon,h=e.expanded,g=e.hasNestChildren,y=e.onTriggerExpand,C=e.expandable,x=e.expandedKeys,S=d[n],w=f[n],E;n===(m||0)&&v&&(E=s.createElement(s.Fragment,null,s.createElement("span",{style:{paddingLeft:"".concat(p*r,"px")},className:"".concat(u,"-row-indent indent-level-").concat(r)}),b({prefixCls:u,expanded:h,expandable:g,record:c,onExpand:y})));var O=((a=t.onCell)===null||a===void 0?void 0:a.call(t,c,o))||{};if(l){var $=O.rowSpan,R=$===void 0?1:$;if(C&&R&&n=1)),style:k(k({},n),C==null?void 0:C.style)}),h.map(function(I,N){var T=I.render,P=I.dataIndex,M=I.className,_=kP(p,I,N,u,o,l,v==null?void 0:v.offset),z=_.key,j=_.fixedInfo,L=_.appendCellNode,F=_.additionalCellProps;return s.createElement(Al,pe({className:M,ellipsis:I.ellipsis,align:I.align,scope:I.rowScope,component:I.rowScope?m:f,prefixCls:b,key:z,record:r,index:o,renderIndex:a,dataIndex:P,render:T,shouldCellUpdate:I.shouldCellUpdate},j,{appendNode:L,additionalProps:F}))})),$;if(S&&(w.current||x)){var R=y(r,o,u+1,x);$=s.createElement(DP,{expanded:x,className:G("".concat(b,"-expanded-row"),"".concat(b,"-expanded-row-level-").concat(u+1),E),prefixCls:b,component:d,cellComponent:f,colSpan:v?v.colSpan:h.length,stickyOffset:v==null?void 0:v.sticky,isEmpty:!1},R)}return s.createElement(s.Fragment,null,O,$)}const xW=kl(SW);function wW(e){var t=e.columnKey,n=e.onColumnResize,r=s.useRef();return Ot(function(){r.current&&n(t,r.current.offsetWidth)},[]),s.createElement(cr,{data:t},s.createElement("td",{ref:r,style:{padding:0,border:0,height:0}},s.createElement("div",{style:{height:0,overflow:"hidden"}}," ")))}function $W(e){var t=e.prefixCls,n=e.columnsKey,r=e.onColumnResize,o=s.useRef(null);return s.createElement("tr",{"aria-hidden":"true",className:"".concat(t,"-measure-row"),style:{height:0,fontSize:0},ref:o},s.createElement(cr.Collection,{onBatchResize:function(i){Af(o.current)&&i.forEach(function(l){var c=l.data,u=l.size;r(c,u.offsetWidth)})}},n.map(function(a){return s.createElement(wW,{key:a,columnKey:a,onColumnResize:r})})))}function EW(e){var t=e.data,n=e.measureColumnWidth,r=Wn(vr,["prefixCls","getComponent","onColumnResize","flattenColumns","getRowKey","expandedKeys","childrenColumnName","emptyNode","expandedRowOffset","fixedInfoList","colWidths"]),o=r.prefixCls,a=r.getComponent,i=r.onColumnResize,l=r.flattenColumns,c=r.getRowKey,u=r.expandedKeys,d=r.childrenColumnName,f=r.emptyNode,m=r.expandedRowOffset,v=m===void 0?0:m,p=r.colWidths,b=jP(t,d,u,c),h=s.useMemo(function(){return b.map(function($){return $.rowKey})},[b]),g=s.useRef({renderWithProps:!1}),y=s.useMemo(function(){for(var $=l.length-v,R=0,I=0;I=0;u-=1){var d=t[u],f=n&&n[u],m=void 0,v=void 0;if(f&&(m=f[Ms],a==="auto"&&(v=f.minWidth)),d||v||m||c){var p=m||{};p.columnType;var b=ut(p,IW);i.unshift(s.createElement("col",pe({key:u,style:{width:d,minWidth:v}},b))),c=!0}}return s.createElement("colgroup",null,i)}var NW=["className","noData","columns","flattenColumns","colWidths","columCount","stickyOffsets","direction","fixHeader","stickyTopOffset","stickyBottomOffset","stickyClassName","onScroll","maxContentScroll","children"];function TW(e,t){return s.useMemo(function(){for(var n=[],r=0;r1?"colgroup":"col":null,ellipsis:h.ellipsis,align:h.align,component:i,prefixCls:d,key:v[b]},g,{additionalProps:y,rowType:"header"}))}))};function zW(e){var t=[];function n(i,l){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;t[c]=t[c]||[];var u=l,d=i.filter(Boolean).map(function(f){var m={key:f.key,className:f.className||"",children:f.title,column:f,colStart:u},v=1,p=f.children;return p&&p.length>0&&(v=n(p,u,c+1).reduce(function(b,h){return b+h},0),m.hasSubColumns=!0),"colSpan"in f&&(v=f.colSpan),"rowSpan"in f&&(m.rowSpan=f.rowSpan),m.colSpan=v,m.colEnd=m.colStart+v-1,t[c].push(m),u+=v,v});return d}n(e,0);for(var r=t.length,o=function(l){t[l].forEach(function(c){!("rowSpan"in c)&&!c.hasSubColumns&&(c.rowSpan=r-l)})},a=0;a1&&arguments[1]!==void 0?arguments[1]:"";return typeof t=="number"?t:t.endsWith("%")?e*parseFloat(t)/100:null}function LW(e,t,n){return s.useMemo(function(){if(t&&t>0){var r=0,o=0;e.forEach(function(m){var v=t1(t,m.width);v?r+=v:o+=1});var a=Math.max(t,n),i=Math.max(a-r,o),l=o,c=i/o,u=0,d=e.map(function(m){var v=k({},m),p=t1(t,v.width);if(p)v.width=p;else{var b=Math.floor(c);v.width=l===1?i:b,i-=b,l-=1}return u+=v.width,v});if(u0?k(k({},t),{},{children:FP(n)}):t})}function sh(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"key";return e.filter(function(n){return n&&We(n)==="object"}).reduce(function(n,r,o){var a=r.fixed,i=a===!0?"left":a,l="".concat(t,"-").concat(o),c=r.children;return c&&c.length>0?[].concat(he(n),he(sh(c,l).map(function(u){return k({fixed:i},u)}))):[].concat(he(n),[k(k({key:l},r),{},{fixed:i})])},[])}function kW(e){return e.map(function(t){var n=t.fixed,r=ut(t,BW),o=n;return n==="left"?o="right":n==="right"&&(o="left"),k({fixed:o},r)})}function AW(e,t){var n=e.prefixCls,r=e.columns,o=e.children,a=e.expandable,i=e.expandedKeys,l=e.columnTitle,c=e.getRowKey,u=e.onTriggerExpand,d=e.expandIcon,f=e.rowExpandable,m=e.expandIconColumnIndex,v=e.expandedRowOffset,p=v===void 0?0:v,b=e.direction,h=e.expandRowByClick,g=e.columnWidth,y=e.fixed,C=e.scrollWidth,x=e.clientWidth,S=s.useMemo(function(){var P=r||Ny(o)||[];return FP(P.slice())},[r,o]),w=s.useMemo(function(){if(a){var P=S.slice();if(!P.includes(Vo)){var M=m||0;M>=0&&(M||y==="left"||!y)&&P.splice(M,0,Vo),y==="right"&&P.splice(S.length,0,Vo)}var _=P.indexOf(Vo);P=P.filter(function(F,W){return F!==Vo||W===_});var z=S[_],j;y?j=y:j=z?z.fixed:null;var L=D(D(D(D(D(D({},Ms,{className:"".concat(n,"-expand-icon-col"),columnType:"EXPAND_COLUMN"}),"title",l),"fixed",j),"className","".concat(n,"-row-expand-icon-cell")),"width",g),"render",function(W,H,A){var V=c(H,A),K=i.has(V),Y=f?f(H):!0,re=d({prefixCls:n,expanded:K,expandable:Y,record:H,onExpand:u});return h?s.createElement("span",{onClick:function(ae){return ae.stopPropagation()}},re):re});return P.map(function(F,W){var H=F===Vo?L:F;return W=0;M-=1){var _=O[M].fixed;if(_==="left"||_===!0){P=M;break}}if(P>=0)for(var z=0;z<=P;z+=1){var j=O[z].fixed;if(j!=="left"&&j!==!0)return!0}var L=O.findIndex(function(H){var A=H.fixed;return A==="right"});if(L>=0)for(var F=L;F=z-l?y(function(j){return k(k({},j),{},{isHiddenScrollBar:!0})}):y(function(j){return k(k({},j),{},{isHiddenScrollBar:!1})})}})},T=function(M){y(function(_){return k(k({},_),{},{scrollLeft:M/f*m||0})})};return s.useImperativeHandle(n,function(){return{setScrollLeft:T,checkScrollBarVisible:N}}),s.useEffect(function(){var P=Bx(document.body,"mouseup",$,!1),M=Bx(document.body,"mousemove",I,!1);return N(),function(){P.remove(),M.remove()}},[v,w]),s.useEffect(function(){if(a.current){for(var P=[],M=Sf(a.current);M;)P.push(M),M=M.parentElement;return P.forEach(function(_){return _.addEventListener("scroll",N,!1)}),window.addEventListener("resize",N,!1),window.addEventListener("scroll",N,!1),c.addEventListener("scroll",N,!1),function(){P.forEach(function(_){return _.removeEventListener("scroll",N)}),window.removeEventListener("resize",N),window.removeEventListener("scroll",N),c.removeEventListener("scroll",N)}}},[c]),s.useEffect(function(){g.isHiddenScrollBar||y(function(P){var M=a.current;return M?k(k({},P),{},{scrollLeft:M.scrollLeft/M.scrollWidth*M.clientWidth}):P})},[g.isHiddenScrollBar]),f<=m||!v||g.isHiddenScrollBar?null:s.createElement("div",{style:{height:fS(),width:m,bottom:l},className:"".concat(d,"-sticky-scroll")},s.createElement("div",{onMouseDown:R,ref:p,className:G("".concat(d,"-sticky-scroll-bar"),D({},"".concat(d,"-sticky-scroll-bar-active"),w)),style:{width:"".concat(v,"px"),transform:"translate3d(".concat(g.scrollLeft,"px, 0, 0)")}}))};const XW=s.forwardRef(qW);var HP="rc-table",YW=[],QW={};function JW(){return"No Data"}function ZW(e,t){var n=k({rowKey:"key",prefixCls:HP,emptyText:JW},e),r=n.prefixCls,o=n.className,a=n.rowClassName,i=n.style,l=n.data,c=n.rowKey,u=n.scroll,d=n.tableLayout,f=n.direction,m=n.title,v=n.footer,p=n.summary,b=n.caption,h=n.id,g=n.showHeader,y=n.components,C=n.emptyText,x=n.onRow,S=n.onHeaderRow,w=n.onScroll,E=n.internalHooks,O=n.transformColumns,$=n.internalRefs,R=n.tailor,I=n.getContainerWidth,N=n.sticky,T=n.rowHoverable,P=T===void 0?!0:T,M=l||YW,_=!!M.length,z=E===Gc,j=s.useCallback(function(vt,mt){return _r(y,vt)||mt},[y]),L=s.useMemo(function(){return typeof c=="function"?c:function(vt){var mt=vt&&vt[c];return mt}},[c]),F=j(["body"]),W=KW(),H=ee(W,3),A=H[0],V=H[1],K=H[2],Y=FW(n,M,L),re=ee(Y,6),J=re[0],ae=re[1],le=re[2],te=re[3],q=re[4],X=re[5],Q=u==null?void 0:u.x,Z=s.useState(0),ne=ee(Z,2),ie=ne[0],fe=ne[1],$e=AW(k(k(k({},n),J),{},{expandable:!!J.expandedRowRender,columnTitle:J.columnTitle,expandedKeys:le,getRowKey:L,onTriggerExpand:X,expandIcon:te,expandIconColumnIndex:J.expandIconColumnIndex,direction:f,scrollWidth:z&&R&&typeof Q=="number"?Q:null,clientWidth:ie}),z?O:null),Se=ee($e,4),oe=Se[0],se=Se[1],ye=Se[2],ce=Se[3],we=ye??Q,Oe=s.useMemo(function(){return{columns:oe,flattenColumns:se}},[oe,se]),Le=s.useRef(),je=s.useRef(),xe=s.useRef(),Pe=s.useRef();s.useImperativeHandle(t,function(){return{nativeElement:Le.current,scrollTo:function(mt){var cn;if(xe.current instanceof HTMLElement){var Gn=mt.index,wn=mt.top,ro=mt.key;if(iW(wn)){var gn;(gn=xe.current)===null||gn===void 0||gn.scrollTo({top:wn})}else{var ar,oo=ro??L(M[Gn]);(ar=xe.current.querySelector('[data-row-key="'.concat(oo,'"]')))===null||ar===void 0||ar.scrollIntoView()}}else(cn=xe.current)!==null&&cn!==void 0&&cn.scrollTo&&xe.current.scrollTo(mt)}}});var Ce=s.useRef(),ve=s.useState(!1),Ee=ee(ve,2),de=Ee[0],ge=Ee[1],me=s.useState(!1),ue=ee(me,2),Te=ue[0],Qe=ue[1],pt=s.useState(new Map),gt=ee(pt,2),ft=gt[0],Bt=gt[1],xt=pm(se),st=xt.map(function(vt){return ft.get(vt)}),at=s.useMemo(function(){return st},[st.join("_")]),Ke=GW(at,se,f),Fe=u&&lh(u.y),Re=u&&lh(we)||!!J.fixed,qe=Re&&se.some(function(vt){var mt=vt.fixed;return mt}),Je=s.useRef(),Ie=UW(N,r),Ne=Ie.isSticky,Xe=Ie.offsetHeader,Ge=Ie.offsetSummary,He=Ie.offsetScroll,et=Ie.stickyClassName,Ue=Ie.container,Ve=s.useMemo(function(){return p==null?void 0:p(M)},[p,M]),tt=(Fe||Ne)&&s.isValidElement(Ve)&&Ve.type===gm&&Ve.props.fixed,dt,St,Et;Fe&&(St={overflowY:_?"scroll":"auto",maxHeight:u.y}),Re&&(dt={overflowX:"auto"},Fe||(St={overflowY:"hidden"}),Et={width:we===!0?"auto":we,minWidth:"100%"});var Pt=s.useCallback(function(vt,mt){Bt(function(cn){if(cn.get(vt)!==mt){var Gn=new Map(cn);return Gn.set(vt,mt),Gn}return cn})},[]),wt=WW(),Tt=ee(wt,2),It=Tt[0],Be=Tt[1];function Ae(vt,mt){mt&&(typeof mt=="function"?mt(vt):mt.scrollLeft!==vt&&(mt.scrollLeft=vt,mt.scrollLeft!==vt&&setTimeout(function(){mt.scrollLeft=vt},0)))}var De=Vt(function(vt){var mt=vt.currentTarget,cn=vt.scrollLeft,Gn=f==="rtl",wn=typeof cn=="number"?cn:mt.scrollLeft,ro=mt||QW;if(!Be()||Be()===ro){var gn;It(ro),Ae(wn,je.current),Ae(wn,xe.current),Ae(wn,Ce.current),Ae(wn,(gn=Je.current)===null||gn===void 0?void 0:gn.setScrollLeft)}var ar=mt||je.current;if(ar){var oo=z&&R&&typeof we=="number"?we:ar.scrollWidth,ao=ar.clientWidth;if(oo===ao){ge(!1),Qe(!1);return}Gn?(ge(-wn0)):(ge(wn>0),Qe(wn1?h-P:0,_=k(k(k({},O),u),{},{flex:"0 0 ".concat(P,"px"),width:"".concat(P,"px"),marginRight:M,pointerEvents:"auto"}),z=s.useMemo(function(){return f?N<=1:R===0||N===0||N>1},[N,R,f]);z?_.visibility="hidden":f&&(_.height=m==null?void 0:m(N));var j=z?function(){return null}:v,L={};return(N===0||R===0)&&(L.rowSpan=1,L.colSpan=1),s.createElement(Al,pe({className:G(b,d),ellipsis:n.ellipsis,align:n.align,scope:n.rowScope,component:i,prefixCls:t.prefixCls,key:x,record:c,index:a,renderIndex:l,dataIndex:p,render:j,shouldCellUpdate:n.shouldCellUpdate},S,{appendNode:w,additionalProps:k(k({},E),{},{style:_},L)}))}var rK=["data","index","className","rowKey","style","extra","getHeight"],oK=s.forwardRef(function(e,t){var n=e.data,r=e.index,o=e.className,a=e.rowKey,i=e.style,l=e.extra,c=e.getHeight,u=ut(e,rK),d=n.record,f=n.indent,m=n.index,v=Wn(vr,["prefixCls","flattenColumns","fixColumn","componentWidth","scrollX"]),p=v.scrollX,b=v.flattenColumns,h=v.prefixCls,g=v.fixColumn,y=v.componentWidth,C=Wn(Ty,["getComponent"]),x=C.getComponent,S=LP(d,a,r,f),w=x(["body","row"],"div"),E=x(["body","cell"],"div"),O=S.rowSupportExpand,$=S.expanded,R=S.rowProps,I=S.expandedRowRender,N=S.expandedRowClassName,T;if(O&&$){var P=I(d,r,f+1,$),M=BP(N,d,r,f),_={};g&&(_={style:D({},"--virtual-width","".concat(y,"px"))});var z="".concat(h,"-expanded-row-cell");T=s.createElement(w,{className:G("".concat(h,"-expanded-row"),"".concat(h,"-expanded-row-level-").concat(f+1),M)},s.createElement(Al,{component:E,prefixCls:h,className:G(z,D({},"".concat(z,"-fixed"),g)),additionalProps:_},P))}var j=k(k({},i),{},{width:p});l&&(j.position="absolute",j.pointerEvents="none");var L=s.createElement(w,pe({},R,u,{"data-row-key":a,ref:O?null:t,className:G(o,"".concat(h,"-row"),R==null?void 0:R.className,D({},"".concat(h,"-row-extra"),l)),style:k(k({},j),R==null?void 0:R.style)}),b.map(function(F,W){return s.createElement(nK,{key:W,component:E,rowInfo:S,column:F,colIndex:W,indent:f,index:r,renderIndex:m,record:d,inverse:l,getHeight:c})}));return O?s.createElement("div",{ref:t},L,T):L}),a1=kl(oK),aK=s.forwardRef(function(e,t){var n=e.data,r=e.onScroll,o=Wn(vr,["flattenColumns","onColumnResize","getRowKey","prefixCls","expandedKeys","childrenColumnName","scrollX","direction"]),a=o.flattenColumns,i=o.onColumnResize,l=o.getRowKey,c=o.expandedKeys,u=o.prefixCls,d=o.childrenColumnName,f=o.scrollX,m=o.direction,v=Wn(Ty),p=v.sticky,b=v.scrollY,h=v.listItemHeight,g=v.getComponent,y=v.onScroll,C=s.useRef(),x=jP(n,d,c,l),S=s.useMemo(function(){var T=0;return a.map(function(P){var M=P.width,_=P.key;return T+=M,[_,M,T]})},[a]),w=s.useMemo(function(){return S.map(function(T){return T[2]})},[S]);s.useEffect(function(){S.forEach(function(T){var P=ee(T,2),M=P[0],_=P[1];i(M,_)})},[S]),s.useImperativeHandle(t,function(){var T,P={scrollTo:function(_){var z;(z=C.current)===null||z===void 0||z.scrollTo(_)},nativeElement:(T=C.current)===null||T===void 0?void 0:T.nativeElement};return Object.defineProperty(P,"scrollLeft",{get:function(){var _;return((_=C.current)===null||_===void 0?void 0:_.getScrollInfo().x)||0},set:function(_){var z;(z=C.current)===null||z===void 0||z.scrollTo({left:_})}}),P});var E=function(P,M){var _,z=(_=x[M])===null||_===void 0?void 0:_.record,j=P.onCell;if(j){var L,F=j(z,M);return(L=F==null?void 0:F.rowSpan)!==null&&L!==void 0?L:1}return 1},O=function(P){var M=P.start,_=P.end,z=P.getSize,j=P.offsetY;if(_<0)return null;for(var L=a.filter(function(te){return E(te,M)===0}),F=M,W=function(q){if(L=L.filter(function(X){return E(X,q)===0}),!L.length)return F=q,1},H=M;H>=0&&!W(H);H-=1);for(var A=a.filter(function(te){return E(te,_)!==1}),V=_,K=function(q){if(A=A.filter(function(X){return E(X,q)!==1}),!A.length)return V=Math.max(q-1,_),1},Y=_;Y1})&&re.push(q)},ae=F;ae<=V;ae+=1)J(ae);var le=re.map(function(te){var q=x[te],X=l(q.record,te),Q=function(ie){var fe=te+ie-1,$e=l(x[fe].record,fe),Se=z(X,$e);return Se.bottom-Se.top},Z=z(X);return s.createElement(a1,{key:te,data:q,rowKey:X,index:te,style:{top:-j+Z.top},extra:!0,getHeight:Q})});return le},$=s.useMemo(function(){return{columnsOffset:w}},[w]),R="".concat(u,"-tbody"),I=g(["body","wrapper"]),N={};return p&&(N.position="sticky",N.bottom=0,We(p)==="object"&&p.offsetScroll&&(N.bottom=p.offsetScroll)),s.createElement(WP.Provider,{value:$},s.createElement(nm,{fullHeight:!1,ref:C,prefixCls:"".concat(R,"-virtual"),styles:{horizontalScrollBar:N},className:R,height:b,itemHeight:h||24,data:x,itemKey:function(P){return l(P.record)},component:I,scrollWidth:f,direction:m,onVirtualScroll:function(P){var M,_=P.x;r({currentTarget:(M=C.current)===null||M===void 0?void 0:M.nativeElement,scrollLeft:_})},onScroll:y,extraRender:O},function(T,P,M){var _=l(T.record,P);return s.createElement(a1,{data:T,rowKey:_,index:P,style:M.style})}))}),iK=kl(aK),lK=function(t,n){var r=n.ref,o=n.onScroll;return s.createElement(iK,{ref:r,data:t,onScroll:o})};function sK(e,t){var n=e.data,r=e.columns,o=e.scroll,a=e.sticky,i=e.prefixCls,l=i===void 0?HP:i,c=e.className,u=e.listItemHeight,d=e.components,f=e.onScroll,m=o||{},v=m.x,p=m.y;typeof v!="number"&&(v=1),typeof p!="number"&&(p=500);var b=Vt(function(y,C){return _r(d,y)||C}),h=Vt(f),g=s.useMemo(function(){return{sticky:a,scrollY:p,listItemHeight:u,getComponent:b,onScroll:h}},[a,p,u,b,h]);return s.createElement(Ty.Provider,{value:g},s.createElement(Fl,pe({},e,{className:G(c,"".concat(l,"-virtual")),scroll:k(k({},o),{},{x:v}),components:k(k({},d),{},{body:n!=null&&n.length?lK:void 0}),columns:r,internalHooks:Gc,tailor:!0,ref:t})))}var cK=s.forwardRef(sK);function KP(e){return NP(cK,e)}KP();const uK=e=>null,dK=e=>null;var My=s.createContext(null),fK=s.createContext({}),mK=function(t){for(var n=t.prefixCls,r=t.level,o=t.isStart,a=t.isEnd,i="".concat(n,"-indent-unit"),l=[],c=0;c=0&&n.splice(r,1),n}function Fo(e,t){var n=(e||[]).slice();return n.indexOf(t)===-1&&n.push(t),n}function _y(e){return e.split("-")}function hK(e,t){var n=[],r=br(t,e);function o(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];a.forEach(function(i){var l=i.key,c=i.children;n.push(l),o(c)})}return o(r.children),n}function yK(e){if(e.parent){var t=_y(e.pos);return Number(t[t.length-1])===e.parent.children.length-1}return!1}function bK(e){var t=_y(e.pos);return Number(t[t.length-1])===0}function s1(e,t,n,r,o,a,i,l,c,u){var d,f=e.clientX,m=e.clientY,v=e.target.getBoundingClientRect(),p=v.top,b=v.height,h=(u==="rtl"?-1:1)*(((o==null?void 0:o.x)||0)-f),g=(h-12)/r,y=c.filter(function(_){var z;return(z=l[_])===null||z===void 0||(z=z.children)===null||z===void 0?void 0:z.length}),C=br(l,n.eventKey);if(m-1.5?a({dragNode:T,dropNode:P,dropPosition:1})?R=1:M=!1:a({dragNode:T,dropNode:P,dropPosition:0})?R=0:a({dragNode:T,dropNode:P,dropPosition:1})?R=1:M=!1:a({dragNode:T,dropNode:P,dropPosition:1})?R=1:M=!1,{dropPosition:R,dropLevelOffset:I,dropTargetKey:C.key,dropTargetPos:C.pos,dragOverNodeKey:$,dropContainerKey:R===0?null:((d=C.parent)===null||d===void 0?void 0:d.key)||null,dropAllowed:M}}function c1(e,t){if(e){var n=t.multiple;return n?e.slice():e.length?[e[0]]:e}}function Av(e){if(!e)return null;var t;if(Array.isArray(e))t={checkedKeys:e,halfCheckedKeys:void 0};else if(We(e)==="object")t={checkedKeys:e.checked||void 0,halfCheckedKeys:e.halfChecked||void 0};else return rn(!1,"`checkedKeys` is not an array or an object"),null;return t}function ch(e,t){var n=new Set;function r(o){if(!n.has(o)){var a=br(t,o);if(a){n.add(o);var i=a.parent,l=a.node;l.disabled||i&&r(i.key)}}}return(e||[]).forEach(function(o){r(o)}),he(n)}function CK(e){const[t,n]=s.useState(null);return[s.useCallback((a,i,l)=>{const c=t??a,u=Math.min(c||0,a),d=Math.max(c||0,a),f=i.slice(u,d+1).map(p=>e(p)),m=f.some(p=>!l.has(p)),v=[];return f.forEach(p=>{m?(l.has(p)||v.push(p),l.add(p)):(l.delete(p),v.push(p))}),n(m?d:null),v},[t]),a=>{n(a)}]}const ua={},uh="SELECT_ALL",dh="SELECT_INVERT",fh="SELECT_NONE",u1=[],UP=(e,t)=>{let n=[];return(t||[]).forEach(r=>{n.push(r),r&&typeof r=="object"&&e in r&&(n=[].concat(he(n),he(UP(e,r[e]))))}),n},SK=(e,t)=>{const{preserveSelectedRowKeys:n,selectedRowKeys:r,defaultSelectedRowKeys:o,getCheckboxProps:a,onChange:i,onSelect:l,onSelectAll:c,onSelectInvert:u,onSelectNone:d,onSelectMultiple:f,columnWidth:m,type:v,selections:p,fixed:b,renderCell:h,hideSelectAll:g,checkStrictly:y=!0}=t||{},{prefixCls:C,data:x,pageData:S,getRecordByKey:w,getRowKey:E,expandType:O,childrenColumnName:$,locale:R,getPopupContainer:I}=e,N=Si(),[T,P]=CK(te=>te),[M,_]=on(r||o||u1,{value:r}),z=s.useRef(new Map),j=s.useCallback(te=>{if(n){const q=new Map;te.forEach(X=>{let Q=w(X);!Q&&z.current.has(X)&&(Q=z.current.get(X)),q.set(X,Q)}),z.current=q}},[w,n]);s.useEffect(()=>{j(M)},[M]);const L=s.useMemo(()=>UP($,S),[$,S]),{keyEntities:F}=s.useMemo(()=>{if(y)return{keyEntities:null};let te=x;if(n){const q=new Set(L.map((Q,Z)=>E(Q,Z))),X=Array.from(z.current).reduce((Q,[Z,ne])=>q.has(Z)?Q:Q.concat(ne),[]);te=[].concat(he(te),he(X))}return wy(te,{externalGetKey:E,childrenPropName:$})},[x,E,y,$,n,L]),W=s.useMemo(()=>{const te=new Map;return L.forEach((q,X)=>{const Q=E(q,X),Z=(a?a(q):null)||{};te.set(Q,Z)}),te},[L,E,a]),H=s.useCallback(te=>{const q=E(te);let X;return W.has(q)?X=W.get(E(te)):X=a?a(te):void 0,!!(X!=null&&X.disabled)},[W,E]),[A,V]=s.useMemo(()=>{if(y)return[M||[],[]];const{checkedKeys:te,halfCheckedKeys:q}=ul(M,!0,F,H);return[te||[],q]},[M,y,F,H]),K=s.useMemo(()=>{const te=v==="radio"?A.slice(0,1):A;return new Set(te)},[A,v]),Y=s.useMemo(()=>v==="radio"?new Set:new Set(V),[V,v]);s.useEffect(()=>{t||_(u1)},[!!t]);const re=s.useCallback((te,q)=>{let X,Q;j(te),n?(X=te,Q=te.map(Z=>z.current.get(Z))):(X=[],Q=[],te.forEach(Z=>{const ne=w(Z);ne!==void 0&&(X.push(Z),Q.push(ne))})),_(X),i==null||i(X,Q,{type:q})},[_,w,i,n]),J=s.useCallback((te,q,X,Q)=>{if(l){const Z=X.map(ne=>w(ne));l(w(te),q,Z,Q)}re(X,"single")},[l,w,re]),ae=s.useMemo(()=>!p||g?null:(p===!0?[uh,dh,fh]:p).map(q=>q===uh?{key:"all",text:R.selectionAll,onSelect(){re(x.map((X,Q)=>E(X,Q)).filter(X=>{const Q=W.get(X);return!(Q!=null&&Q.disabled)||K.has(X)}),"all")}}:q===dh?{key:"invert",text:R.selectInvert,onSelect(){const X=new Set(K);S.forEach((Z,ne)=>{const ie=E(Z,ne),fe=W.get(ie);fe!=null&&fe.disabled||(X.has(ie)?X.delete(ie):X.add(ie))});const Q=Array.from(X);u&&(N.deprecated(!1,"onSelectInvert","onChange"),u(Q)),re(Q,"invert")}}:q===fh?{key:"none",text:R.selectNone,onSelect(){d==null||d(),re(Array.from(K).filter(X=>{const Q=W.get(X);return Q==null?void 0:Q.disabled}),"none")}}:q).map(q=>Object.assign(Object.assign({},q),{onSelect:(...X)=>{var Q,Z;(Z=q.onSelect)===null||Z===void 0||(Q=Z).call.apply(Q,[q].concat(X)),P(null)}})),[p,K,S,E,u,re]);return[s.useCallback(te=>{var q;if(!t)return te.filter(Pe=>Pe!==ua);let X=he(te);const Q=new Set(K),Z=L.map(E).filter(Pe=>!W.get(Pe).disabled),ne=Z.every(Pe=>Q.has(Pe)),ie=Z.some(Pe=>Q.has(Pe)),fe=()=>{const Pe=[];ne?Z.forEach(ve=>{Q.delete(ve),Pe.push(ve)}):Z.forEach(ve=>{Q.has(ve)||(Q.add(ve),Pe.push(ve))});const Ce=Array.from(Q);c==null||c(!ne,Ce.map(ve=>w(ve)),Pe.map(ve=>w(ve))),re(Ce,"all"),P(null)};let $e,Se;if(v!=="radio"){let Pe;if(ae){const ge={getPopupContainer:I,items:ae.map((me,ue)=>{const{key:Te,text:Qe,onSelect:pt}=me;return{key:Te??ue,onClick:()=>{pt==null||pt(Z)},label:Qe}})};Pe=s.createElement("div",{className:`${C}-selection-extra`},s.createElement($y,{menu:ge,getPopupContainer:I},s.createElement("span",null,s.createElement(nR,null))))}const Ce=L.map((ge,me)=>{const ue=E(ge,me),Te=W.get(ue)||{};return Object.assign({checked:Q.has(ue)},Te)}).filter(({disabled:ge})=>ge),ve=!!Ce.length&&Ce.length===L.length,Ee=ve&&Ce.every(({checked:ge})=>ge),de=ve&&Ce.some(({checked:ge})=>ge);Se=s.createElement(Da,{checked:ve?Ee:!!L.length&&ne,indeterminate:ve?!Ee&&de:!ne&&ie,onChange:fe,disabled:L.length===0||ve,"aria-label":Pe?"Custom selection":"Select all",skipGroup:!0}),$e=!g&&s.createElement("div",{className:`${C}-selection`},Se,Pe)}let oe;v==="radio"?oe=(Pe,Ce,ve)=>{const Ee=E(Ce,ve),de=Q.has(Ee),ge=W.get(Ee);return{node:s.createElement(Hc,Object.assign({},ge,{checked:de,onClick:me=>{var ue;me.stopPropagation(),(ue=ge==null?void 0:ge.onClick)===null||ue===void 0||ue.call(ge,me)},onChange:me=>{var ue;Q.has(Ee)||J(Ee,!0,[Ee],me.nativeEvent),(ue=ge==null?void 0:ge.onChange)===null||ue===void 0||ue.call(ge,me)}})),checked:de}}:oe=(Pe,Ce,ve)=>{var Ee;const de=E(Ce,ve),ge=Q.has(de),me=Y.has(de),ue=W.get(de);let Te;return O==="nest"?Te=me:Te=(Ee=ue==null?void 0:ue.indeterminate)!==null&&Ee!==void 0?Ee:me,{node:s.createElement(Da,Object.assign({},ue,{indeterminate:Te,checked:ge,skipGroup:!0,onClick:Qe=>{var pt;Qe.stopPropagation(),(pt=ue==null?void 0:ue.onClick)===null||pt===void 0||pt.call(ue,Qe)},onChange:Qe=>{var pt;const{nativeEvent:gt}=Qe,{shiftKey:ft}=gt,Bt=Z.findIndex(st=>st===de),xt=A.some(st=>Z.includes(st));if(ft&&y&&xt){const st=T(Bt,Z,Q),at=Array.from(Q);f==null||f(!ge,at.map(Ke=>w(Ke)),st.map(Ke=>w(Ke))),re(at,"multiple")}else{const st=A;if(y){const at=ge?Io(st,de):Fo(st,de);J(de,!ge,at,gt)}else{const at=ul([].concat(he(st),[de]),!0,F,H),{checkedKeys:Ke,halfCheckedKeys:Fe}=at;let Re=Ke;if(ge){const qe=new Set(Ke);qe.delete(de),Re=ul(Array.from(qe),{halfCheckedKeys:Fe},F,H).checkedKeys}J(de,!ge,Re,gt)}}P(ge?null:Bt),(pt=ue==null?void 0:ue.onChange)===null||pt===void 0||pt.call(ue,Qe)}})),checked:ge}};const se=(Pe,Ce,ve)=>{const{node:Ee,checked:de}=oe(Pe,Ce,ve);return h?h(de,Ce,ve,Ee):Ee};if(!X.includes(ua))if(X.findIndex(Pe=>{var Ce;return((Ce=Pe[Ms])===null||Ce===void 0?void 0:Ce.columnType)==="EXPAND_COLUMN"})===0){const[Pe,...Ce]=X;X=[Pe,ua].concat(he(Ce))}else X=[ua].concat(he(X));const ye=X.indexOf(ua);X=X.filter((Pe,Ce)=>Pe!==ua||Ce===ye);const ce=X[ye-1],we=X[ye+1];let Oe=b;Oe===void 0&&((we==null?void 0:we.fixed)!==void 0?Oe=we.fixed:(ce==null?void 0:ce.fixed)!==void 0&&(Oe=ce.fixed)),Oe&&ce&&((q=ce[Ms])===null||q===void 0?void 0:q.columnType)==="EXPAND_COLUMN"&&ce.fixed===void 0&&(ce.fixed=Oe);const Le=G(`${C}-selection-col`,{[`${C}-selection-col-with-dropdown`]:p&&v==="checkbox"}),je=()=>t!=null&&t.columnTitle?typeof t.columnTitle=="function"?t.columnTitle(Se):t.columnTitle:$e,xe={fixed:Oe,width:m,className:`${C}-selection-column`,title:je(),render:se,onCell:t.onCell,align:t.align,[Ms]:{className:Le}};return X.map(Pe=>Pe===ua?xe:Pe)},[E,L,t,A,K,Y,m,ae,O,W,f,J,H]),K]};function xK(e,t){return e._antProxy=e._antProxy||{},Object.keys(t).forEach(n=>{if(!(n in e._antProxy)){const r=e[n];e._antProxy[n]=r,e[n]=t[n]}}),e}function wK(e,t){return s.useImperativeHandle(e,()=>{const n=t(),{nativeElement:r}=n;return typeof Proxy<"u"?new Proxy(r,{get(o,a){return n[a]?n[a]:Reflect.get(o,a)}}):xK(r,n)})}function $K(e){return t=>{const{prefixCls:n,onExpand:r,record:o,expanded:a,expandable:i}=t,l=`${n}-row-expand-icon`;return s.createElement("button",{type:"button",onClick:c=>{r(o,c),c.stopPropagation()},className:G(l,{[`${l}-spaced`]:!i,[`${l}-expanded`]:i&&a,[`${l}-collapsed`]:i&&!a}),"aria-label":a?e.collapse:e.expand,"aria-expanded":a})}}function EK(e){return(n,r)=>{const o=n.querySelector(`.${e}-container`);let a=r;if(o){const i=getComputedStyle(o),l=parseInt(i.borderLeftWidth,10),c=parseInt(i.borderRightWidth,10);a=r-l-c}return a}}const Aa=(e,t)=>"key"in e&&e.key!==void 0&&e.key!==null?e.key:e.dataIndex?Array.isArray(e.dataIndex)?e.dataIndex.join("."):e.dataIndex:t;function Hl(e,t){return t?`${t}-${e}`:`${e}`}const hm=(e,t)=>typeof e=="function"?e(t):e,OK=(e,t)=>{const n=hm(e,t);return Object.prototype.toString.call(n)==="[object Object]"?"":n};function RK(e){const t=s.useRef(e),n=iy();return[()=>t.current,r=>{t.current=r,n()}]}var PK=function(t){var n=t.dropPosition,r=t.dropLevelOffset,o=t.indent,a={pointerEvents:"none",position:"absolute",right:0,backgroundColor:"red",height:2};switch(n){case-1:a.top=0,a.left=-r*o;break;case 1:a.bottom=0,a.left=-r*o;break;case 0:a.bottom=0,a.left=o;break}return B.createElement("div",{style:a})};function GP(e){if(e==null)throw new TypeError("Cannot destructure "+e)}function IK(e,t){var n=s.useState(!1),r=ee(n,2),o=r[0],a=r[1];Ot(function(){if(o)return e(),function(){t()}},[o]),Ot(function(){return a(!0),function(){a(!1)}},[])}var NK=["className","style","motion","motionNodes","motionType","onMotionStart","onMotionEnd","active","treeNodeRequiredProps"],TK=s.forwardRef(function(e,t){var n=e.className,r=e.style,o=e.motion,a=e.motionNodes,i=e.motionType,l=e.onMotionStart,c=e.onMotionEnd,u=e.active,d=e.treeNodeRequiredProps,f=ut(e,NK),m=s.useState(!0),v=ee(m,2),p=v[0],b=v[1],h=s.useContext(My),g=h.prefixCls,y=a&&i!=="hide";Ot(function(){a&&y!==p&&b(y)},[a]);var C=function(){a&&l()},x=s.useRef(!1),S=function(){a&&!x.current&&(x.current=!0,c())};IK(C,S);var w=function(O){y===O&&S()};return a?s.createElement(to,pe({ref:t,visible:p},o,{motionAppear:i==="show",onVisibleChanged:w}),function(E,O){var $=E.className,R=E.style;return s.createElement("div",{ref:O,className:G("".concat(g,"-treenode-motion"),$),style:R},a.map(function(I){var N=Object.assign({},(GP(I.data),I.data)),T=I.title,P=I.key,M=I.isStart,_=I.isEnd;delete N.children;var z=Ts(P,d);return s.createElement(yc,pe({},N,z,{title:T,active:u,data:I.data,key:P,isStart:M,isEnd:_}))}))}):s.createElement(yc,pe({domRef:t,className:n,style:r},f,{active:u}))});function MK(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=e.length,r=t.length;if(Math.abs(n-r)!==1)return{add:!1,key:null};function o(a,i){var l=new Map;a.forEach(function(u){l.set(u,!0)});var c=i.filter(function(u){return!l.has(u)});return c.length===1?c[0]:null}return n ").concat(t);return t}var LK=s.forwardRef(function(e,t){var n=e.prefixCls,r=e.data;e.selectable,e.checkable;var o=e.expandedKeys,a=e.selectedKeys,i=e.checkedKeys,l=e.loadedKeys,c=e.loadingKeys,u=e.halfCheckedKeys,d=e.keyEntities,f=e.disabled,m=e.dragging,v=e.dragOverNodeKey,p=e.dropPosition,b=e.motion,h=e.height,g=e.itemHeight,y=e.virtual,C=e.scrollWidth,x=e.focusable,S=e.activeItem,w=e.focused,E=e.tabIndex,O=e.onKeyDown,$=e.onFocus,R=e.onBlur,I=e.onActiveChange,N=e.onListChangeStart,T=e.onListChangeEnd,P=ut(e,_K),M=s.useRef(null),_=s.useRef(null);s.useImperativeHandle(t,function(){return{scrollTo:function(se){M.current.scrollTo(se)},getIndentWidth:function(){return _.current.offsetWidth}}});var z=s.useState(o),j=ee(z,2),L=j[0],F=j[1],W=s.useState(r),H=ee(W,2),A=H[0],V=H[1],K=s.useState(r),Y=ee(K,2),re=Y[0],J=Y[1],ae=s.useState([]),le=ee(ae,2),te=le[0],q=le[1],X=s.useState(null),Q=ee(X,2),Z=Q[0],ne=Q[1],ie=s.useRef(r);ie.current=r;function fe(){var oe=ie.current;V(oe),J(oe),q([]),ne(null),T()}Ot(function(){F(o);var oe=MK(L,o);if(oe.key!==null)if(oe.add){var se=A.findIndex(function(je){var xe=je.key;return xe===oe.key}),ye=v1(d1(A,r,oe.key),y,h,g),ce=A.slice();ce.splice(se+1,0,m1),J(ce),q(ye),ne("show")}else{var we=r.findIndex(function(je){var xe=je.key;return xe===oe.key}),Oe=v1(d1(r,A,oe.key),y,h,g),Le=r.slice();Le.splice(we+1,0,m1),J(Le),q(Oe),ne("hide")}else A!==r&&(V(r),J(r))},[o,r]),s.useEffect(function(){m||fe()},[m]);var $e=b?re:r,Se={expandedKeys:o,selectedKeys:a,loadedKeys:l,loadingKeys:c,checkedKeys:i,halfCheckedKeys:u,dragOverNodeKey:v,dropPosition:p,keyEntities:d};return s.createElement(s.Fragment,null,w&&S&&s.createElement("span",{style:f1,"aria-live":"assertive"},jK(S)),s.createElement("div",null,s.createElement("input",{style:f1,disabled:x===!1||f,tabIndex:x!==!1?E:null,onKeyDown:O,onFocus:$,onBlur:R,value:"",onChange:zK,"aria-label":"for screen reader"})),s.createElement("div",{className:"".concat(n,"-treenode"),"aria-hidden":!0,style:{position:"absolute",pointerEvents:"none",visibility:"hidden",height:0,overflow:"hidden",border:0,padding:0}},s.createElement("div",{className:"".concat(n,"-indent")},s.createElement("div",{ref:_,className:"".concat(n,"-indent-unit")}))),s.createElement(nm,pe({},P,{data:$e,itemKey:p1,height:h,fullHeight:!1,virtual:y,itemHeight:g,scrollWidth:C,prefixCls:"".concat(n,"-list"),ref:M,role:"tree",onVisibleChange:function(se){se.every(function(ye){return p1(ye)!==pi})&&fe()}}),function(oe){var se=oe.pos,ye=Object.assign({},(GP(oe.data),oe.data)),ce=oe.title,we=oe.key,Oe=oe.isStart,Le=oe.isEnd,je=Kc(we,se);delete ye.key,delete ye.children;var xe=Ts(je,Se);return s.createElement(TK,pe({},ye,xe,{title:ce,active:!!S&&we===S.key,pos:se,data:oe.data,isStart:Oe,isEnd:Le,motion:b,motionNodes:we===pi?te:null,motionType:Z,onMotionStart:N,onMotionEnd:fe,treeNodeRequiredProps:Se,onMouseMove:function(){I(null)}}))}))}),DK=10,zy=function(e){Zr(n,e);var t=eo(n);function n(){var r;mn(this,n);for(var o=arguments.length,a=new Array(o),i=0;i2&&arguments[2]!==void 0?arguments[2]:!1,f=r.state,m=f.dragChildrenKeys,v=f.dropPosition,p=f.dropTargetKey,b=f.dropTargetPos,h=f.dropAllowed;if(h){var g=r.props.onDrop;if(r.setState({dragOverNodeKey:null}),r.cleanDragState(),p!==null){var y=k(k({},Ts(p,r.getTreeNodeRequiredProps())),{},{active:((u=r.getActiveItem())===null||u===void 0?void 0:u.key)===p,data:br(r.state.keyEntities,p).node}),C=m.includes(p);rn(!C,"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.");var x=_y(b),S={event:l,node:$n(y),dragNode:r.dragNodeProps?$n(r.dragNodeProps):null,dragNodesKeys:[r.dragNodeProps.eventKey].concat(m),dropToGap:v!==0,dropPosition:v+Number(x[x.length-1])};d||g==null||g(S),r.dragNodeProps=null}}}),D(Me(r),"cleanDragState",function(){var l=r.state.draggingNodeKey;l!==null&&r.setState({draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),r.dragStartMousePosition=null,r.currentMouseOverDroppableNodeKey=null}),D(Me(r),"triggerExpandActionExpand",function(l,c){var u=r.state,d=u.expandedKeys,f=u.flattenNodes,m=c.expanded,v=c.key,p=c.isLeaf;if(!(p||l.shiftKey||l.metaKey||l.ctrlKey)){var b=f.filter(function(g){return g.key===v})[0],h=$n(k(k({},Ts(v,r.getTreeNodeRequiredProps())),{},{data:b.data}));r.setExpandedKeys(m?Io(d,v):Fo(d,v)),r.onNodeExpand(l,h)}}),D(Me(r),"onNodeClick",function(l,c){var u=r.props,d=u.onClick,f=u.expandAction;f==="click"&&r.triggerExpandActionExpand(l,c),d==null||d(l,c)}),D(Me(r),"onNodeDoubleClick",function(l,c){var u=r.props,d=u.onDoubleClick,f=u.expandAction;f==="doubleClick"&&r.triggerExpandActionExpand(l,c),d==null||d(l,c)}),D(Me(r),"onNodeSelect",function(l,c){var u=r.state.selectedKeys,d=r.state,f=d.keyEntities,m=d.fieldNames,v=r.props,p=v.onSelect,b=v.multiple,h=c.selected,g=c[m.key],y=!h;y?b?u=Fo(u,g):u=[g]:u=Io(u,g);var C=u.map(function(x){var S=br(f,x);return S?S.node:null}).filter(Boolean);r.setUncontrolledState({selectedKeys:u}),p==null||p(u,{event:"select",selected:y,node:c,selectedNodes:C,nativeEvent:l.nativeEvent})}),D(Me(r),"onNodeCheck",function(l,c,u){var d=r.state,f=d.keyEntities,m=d.checkedKeys,v=d.halfCheckedKeys,p=r.props,b=p.checkStrictly,h=p.onCheck,g=c.key,y,C={event:"check",node:c,checked:u,nativeEvent:l.nativeEvent};if(b){var x=u?Fo(m,g):Io(m,g),S=Io(v,g);y={checked:x,halfChecked:S},C.checkedNodes=x.map(function(I){return br(f,I)}).filter(Boolean).map(function(I){return I.node}),r.setUncontrolledState({checkedKeys:x})}else{var w=ul([].concat(he(m),[g]),!0,f),E=w.checkedKeys,O=w.halfCheckedKeys;if(!u){var $=new Set(E);$.delete(g);var R=ul(Array.from($),{halfCheckedKeys:O},f);E=R.checkedKeys,O=R.halfCheckedKeys}y=E,C.checkedNodes=[],C.checkedNodesPositions=[],C.halfCheckedKeys=O,E.forEach(function(I){var N=br(f,I);if(N){var T=N.node,P=N.pos;C.checkedNodes.push(T),C.checkedNodesPositions.push({node:T,pos:P})}}),r.setUncontrolledState({checkedKeys:E},!1,{halfCheckedKeys:O})}h==null||h(y,C)}),D(Me(r),"onNodeLoad",function(l){var c,u=l.key,d=r.state.keyEntities,f=br(d,u);if(!(f!=null&&(c=f.children)!==null&&c!==void 0&&c.length)){var m=new Promise(function(v,p){r.setState(function(b){var h=b.loadedKeys,g=h===void 0?[]:h,y=b.loadingKeys,C=y===void 0?[]:y,x=r.props,S=x.loadData,w=x.onLoad;if(!S||g.includes(u)||C.includes(u))return null;var E=S(l);return E.then(function(){var O=r.state.loadedKeys,$=Fo(O,u);w==null||w($,{event:"load",node:l}),r.setUncontrolledState({loadedKeys:$}),r.setState(function(R){return{loadingKeys:Io(R.loadingKeys,u)}}),v()}).catch(function(O){if(r.setState(function(R){return{loadingKeys:Io(R.loadingKeys,u)}}),r.loadingRetryTimes[u]=(r.loadingRetryTimes[u]||0)+1,r.loadingRetryTimes[u]>=DK){var $=r.state.loadedKeys;rn(!1,"Retry for `loadData` many times but still failed. No more retry."),r.setUncontrolledState({loadedKeys:Fo($,u)}),v()}p(O)}),{loadingKeys:Fo(C,u)}})});return m.catch(function(){}),m}}),D(Me(r),"onNodeMouseEnter",function(l,c){var u=r.props.onMouseEnter;u==null||u({event:l,node:c})}),D(Me(r),"onNodeMouseLeave",function(l,c){var u=r.props.onMouseLeave;u==null||u({event:l,node:c})}),D(Me(r),"onNodeContextMenu",function(l,c){var u=r.props.onRightClick;u&&(l.preventDefault(),u({event:l,node:c}))}),D(Me(r),"onFocus",function(){var l=r.props.onFocus;r.setState({focused:!0});for(var c=arguments.length,u=new Array(c),d=0;d1&&arguments[1]!==void 0?arguments[1]:!1,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(!r.destroyed){var d=!1,f=!0,m={};Object.keys(l).forEach(function(v){if(r.props.hasOwnProperty(v)){f=!1;return}d=!0,m[v]=l[v]}),d&&(!c||f)&&r.setState(k(k({},m),u))}}),D(Me(r),"scrollTo",function(l){r.listRef.current.scrollTo(l)}),r}return vn(n,[{key:"componentDidMount",value:function(){this.destroyed=!1,this.onUpdated()}},{key:"componentDidUpdate",value:function(){this.onUpdated()}},{key:"onUpdated",value:function(){var o=this.props,a=o.activeKey,i=o.itemScrollOffset,l=i===void 0?0:i;a!==void 0&&a!==this.state.activeKey&&(this.setState({activeKey:a}),a!==null&&this.scrollTo({key:a,offset:l}))}},{key:"componentWillUnmount",value:function(){window.removeEventListener("dragend",this.onWindowDragEnd),this.destroyed=!0}},{key:"resetDragState",value:function(){this.setState({dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})}},{key:"render",value:function(){var o=this.state,a=o.focused,i=o.flattenNodes,l=o.keyEntities,c=o.draggingNodeKey,u=o.activeKey,d=o.dropLevelOffset,f=o.dropContainerKey,m=o.dropTargetKey,v=o.dropPosition,p=o.dragOverNodeKey,b=o.indent,h=this.props,g=h.prefixCls,y=h.className,C=h.style,x=h.showLine,S=h.focusable,w=h.tabIndex,E=w===void 0?0:w,O=h.selectable,$=h.showIcon,R=h.icon,I=h.switcherIcon,N=h.draggable,T=h.checkable,P=h.checkStrictly,M=h.disabled,_=h.motion,z=h.loadData,j=h.filterTreeNode,L=h.height,F=h.itemHeight,W=h.scrollWidth,H=h.virtual,A=h.titleRender,V=h.dropIndicatorRender,K=h.onContextMenu,Y=h.onScroll,re=h.direction,J=h.rootClassName,ae=h.rootStyle,le=tr(this.props,{aria:!0,data:!0}),te;N&&(We(N)==="object"?te=N:typeof N=="function"?te={nodeDraggable:N}:te={});var q={prefixCls:g,selectable:O,showIcon:$,icon:R,switcherIcon:I,draggable:te,draggingNodeKey:c,checkable:T,checkStrictly:P,disabled:M,keyEntities:l,dropLevelOffset:d,dropContainerKey:f,dropTargetKey:m,dropPosition:v,dragOverNodeKey:p,indent:b,direction:re,dropIndicatorRender:V,loadData:z,filterTreeNode:j,titleRender:A,onNodeClick:this.onNodeClick,onNodeDoubleClick:this.onNodeDoubleClick,onNodeExpand:this.onNodeExpand,onNodeSelect:this.onNodeSelect,onNodeCheck:this.onNodeCheck,onNodeLoad:this.onNodeLoad,onNodeMouseEnter:this.onNodeMouseEnter,onNodeMouseLeave:this.onNodeMouseLeave,onNodeContextMenu:this.onNodeContextMenu,onNodeDragStart:this.onNodeDragStart,onNodeDragEnter:this.onNodeDragEnter,onNodeDragOver:this.onNodeDragOver,onNodeDragLeave:this.onNodeDragLeave,onNodeDragEnd:this.onNodeDragEnd,onNodeDrop:this.onNodeDrop};return s.createElement(My.Provider,{value:q},s.createElement("div",{className:G(g,y,J,D(D(D({},"".concat(g,"-show-line"),x),"".concat(g,"-focused"),a),"".concat(g,"-active-focused"),u!==null)),style:ae},s.createElement(LK,pe({ref:this.listRef,prefixCls:g,style:C,data:i,disabled:M,selectable:O,checkable:!!T,motion:_,dragging:c!==null,height:L,itemHeight:F,virtual:H,focusable:S,focused:a,tabIndex:E,activeItem:this.getActiveItem(),onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onActiveChange:this.onActiveChange,onListChangeStart:this.onListChangeStart,onListChangeEnd:this.onListChangeEnd,onContextMenu:K,onScroll:Y,scrollWidth:W},this.getTreeNodeRequiredProps(),le))))}}],[{key:"getDerivedStateFromProps",value:function(o,a){var i=a.prevProps,l={prevProps:o};function c(E){return!i&&o.hasOwnProperty(E)||i&&i[E]!==o[E]}var u,d=a.fieldNames;if(c("fieldNames")&&(d=Pl(o.fieldNames),l.fieldNames=d),c("treeData")?u=o.treeData:c("children")&&(rn(!1,"`children` of Tree is deprecated. Please use `treeData` instead."),u=ZR(o.children)),u){l.treeData=u;var f=wy(u,{fieldNames:d});l.keyEntities=k(D({},pi,qP),f.keyEntities)}var m=l.keyEntities||a.keyEntities;if(c("expandedKeys")||i&&c("autoExpandParent"))l.expandedKeys=o.autoExpandParent||!i&&o.defaultExpandParent?ch(o.expandedKeys,m):o.expandedKeys;else if(!i&&o.defaultExpandAll){var v=k({},m);delete v[pi];var p=[];Object.keys(v).forEach(function(E){var O=v[E];O.children&&O.children.length&&p.push(O.key)}),l.expandedKeys=p}else!i&&o.defaultExpandedKeys&&(l.expandedKeys=o.autoExpandParent||o.defaultExpandParent?ch(o.defaultExpandedKeys,m):o.defaultExpandedKeys);if(l.expandedKeys||delete l.expandedKeys,u||l.expandedKeys){var b=_v(u||a.treeData,l.expandedKeys||a.expandedKeys,d);l.flattenNodes=b}if(o.selectable&&(c("selectedKeys")?l.selectedKeys=c1(o.selectedKeys,o):!i&&o.defaultSelectedKeys&&(l.selectedKeys=c1(o.defaultSelectedKeys,o))),o.checkable){var h;if(c("checkedKeys")?h=Av(o.checkedKeys)||{}:!i&&o.defaultCheckedKeys?h=Av(o.defaultCheckedKeys)||{}:u&&(h=Av(o.checkedKeys)||{checkedKeys:a.checkedKeys,halfCheckedKeys:a.halfCheckedKeys}),h){var g=h,y=g.checkedKeys,C=y===void 0?[]:y,x=g.halfCheckedKeys,S=x===void 0?[]:x;if(!o.checkStrictly){var w=ul(C,!0,m);C=w.checkedKeys,S=w.halfCheckedKeys}l.checkedKeys=C,l.halfCheckedKeys=S}}return c("loadedKeys")&&(l.loadedKeys=o.loadedKeys),l}}]),n}(s.Component);D(zy,"defaultProps",{prefixCls:"rc-tree",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:PK,allowDrop:function(){return!0},expandAction:!1});D(zy,"TreeNode",yc);const BK=({treeCls:e,treeNodeCls:t,directoryNodeSelectedBg:n,directoryNodeSelectedColor:r,motionDurationMid:o,borderRadius:a,controlItemBgHover:i})=>({[`${e}${e}-directory ${t}`]:{[`${e}-node-content-wrapper`]:{position:"static",[`&:has(${e}-drop-indicator)`]:{position:"relative"},[`> *:not(${e}-drop-indicator)`]:{position:"relative"},"&:hover":{background:"transparent"},"&:before":{position:"absolute",inset:0,transition:`background-color ${o}`,content:'""',borderRadius:a},"&:hover:before":{background:i}},[`${e}-switcher, ${e}-checkbox, ${e}-draggable-icon`]:{zIndex:1},"&-selected":{background:n,borderRadius:a,[`${e}-switcher, ${e}-draggable-icon`]:{color:r},[`${e}-node-content-wrapper`]:{color:r,background:"transparent","&:before, &:hover:before":{background:n}}}}}),kK=new Nt("ant-tree-node-fx-do-not-use",{"0%":{opacity:0},"100%":{opacity:1}}),AK=(e,t)=>({[`.${e}-switcher-icon`]:{display:"inline-block",fontSize:10,verticalAlign:"baseline",svg:{transition:`transform ${t.motionDurationSlow}`}}}),FK=(e,t)=>({[`.${e}-drop-indicator`]:{position:"absolute",zIndex:1,height:2,backgroundColor:t.colorPrimary,borderRadius:1,pointerEvents:"none","&:after":{position:"absolute",top:-3,insetInlineStart:-6,width:8,height:8,backgroundColor:"transparent",border:`${U(t.lineWidthBold)} solid ${t.colorPrimary}`,borderRadius:"50%",content:'""'}}}),HK=(e,t)=>{const{treeCls:n,treeNodeCls:r,treeNodePadding:o,titleHeight:a,indentSize:i,nodeSelectedBg:l,nodeHoverBg:c,colorTextQuaternary:u,controlItemBgActiveDisabled:d}=t;return{[n]:Object.assign(Object.assign({},Jt(t)),{"--rc-virtual-list-scrollbar-bg":t.colorSplit,background:t.colorBgContainer,borderRadius:t.borderRadius,transition:`background-color ${t.motionDurationSlow}`,"&-rtl":{direction:"rtl"},[`&${n}-rtl ${n}-switcher_close ${n}-switcher-icon svg`]:{transform:"rotate(90deg)"},[`&-focused:not(:hover):not(${n}-active-focused)`]:Object.assign({},ko(t)),[`${n}-list-holder-inner`]:{alignItems:"flex-start"},[`&${n}-block-node`]:{[`${n}-list-holder-inner`]:{alignItems:"stretch",[`${n}-node-content-wrapper`]:{flex:"auto"},[`${r}.dragging:after`]:{position:"absolute",inset:0,border:`1px solid ${t.colorPrimary}`,opacity:0,animationName:kK,animationDuration:t.motionDurationSlow,animationPlayState:"running",animationFillMode:"forwards",content:'""',pointerEvents:"none",borderRadius:t.borderRadius}}},[r]:{display:"flex",alignItems:"flex-start",marginBottom:o,lineHeight:U(a),position:"relative","&:before":{content:'""',position:"absolute",zIndex:1,insetInlineStart:0,width:"100%",top:"100%",height:o},[`&-disabled ${n}-node-content-wrapper`]:{color:t.colorTextDisabled,cursor:"not-allowed","&:hover":{background:"transparent"}},[`${n}-checkbox-disabled + ${n}-node-selected,&${r}-disabled${r}-selected ${n}-node-content-wrapper`]:{backgroundColor:d},[`${n}-checkbox-disabled`]:{pointerEvents:"unset"},[`&:not(${r}-disabled)`]:{[`${n}-node-content-wrapper`]:{"&:hover":{color:t.nodeHoverColor}}},[`&-active ${n}-node-content-wrapper`]:{background:t.controlItemBgHover},[`&:not(${r}-disabled).filter-node ${n}-title`]:{color:t.colorPrimary,fontWeight:t.fontWeightStrong},"&-draggable":{cursor:"grab",[`${n}-draggable-icon`]:{flexShrink:0,width:a,textAlign:"center",visibility:"visible",color:u},[`&${r}-disabled ${n}-draggable-icon`]:{visibility:"hidden"}}},[`${n}-indent`]:{alignSelf:"stretch",whiteSpace:"nowrap",userSelect:"none","&-unit":{display:"inline-block",width:i}},[`${n}-draggable-icon`]:{visibility:"hidden"},[`${n}-switcher, ${n}-checkbox`]:{marginInlineEnd:t.calc(t.calc(a).sub(t.controlInteractiveSize)).div(2).equal()},[`${n}-switcher`]:Object.assign(Object.assign({},AK(e,t)),{position:"relative",flex:"none",alignSelf:"stretch",width:a,textAlign:"center",cursor:"pointer",userSelect:"none",transition:`all ${t.motionDurationSlow}`,"&-noop":{cursor:"unset"},"&:before":{pointerEvents:"none",content:'""',width:a,height:a,position:"absolute",left:{_skip_check_:!0,value:0},top:0,borderRadius:t.borderRadius,transition:`all ${t.motionDurationSlow}`},[`&:not(${n}-switcher-noop):hover:before`]:{backgroundColor:t.colorBgTextHover},[`&_close ${n}-switcher-icon svg`]:{transform:"rotate(-90deg)"},"&-loading-icon":{color:t.colorPrimary},"&-leaf-line":{position:"relative",zIndex:1,display:"inline-block",width:"100%",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:t.calc(a).div(2).equal(),bottom:t.calc(o).mul(-1).equal(),marginInlineStart:-1,borderInlineEnd:`1px solid ${t.colorBorder}`,content:'""'},"&:after":{position:"absolute",width:t.calc(t.calc(a).div(2).equal()).mul(.8).equal(),height:t.calc(a).div(2).equal(),borderBottom:`1px solid ${t.colorBorder}`,content:'""'}}}),[`${n}-node-content-wrapper`]:Object.assign(Object.assign({position:"relative",minHeight:a,paddingBlock:0,paddingInline:t.paddingXS,background:"transparent",borderRadius:t.borderRadius,cursor:"pointer",transition:`all ${t.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`},FK(e,t)),{"&:hover":{backgroundColor:c},[`&${n}-node-selected`]:{color:t.nodeSelectedColor,backgroundColor:l},[`${n}-iconEle`]:{display:"inline-block",width:a,height:a,textAlign:"center",verticalAlign:"top","&:empty":{display:"none"}}}),[`${n}-unselectable ${n}-node-content-wrapper:hover`]:{backgroundColor:"transparent"},[`${r}.drop-container > [draggable]`]:{boxShadow:`0 0 0 2px ${t.colorPrimary}`},"&-show-line":{[`${n}-indent-unit`]:{position:"relative",height:"100%","&:before":{position:"absolute",top:0,insetInlineEnd:t.calc(a).div(2).equal(),bottom:t.calc(o).mul(-1).equal(),borderInlineEnd:`1px solid ${t.colorBorder}`,content:'""'},"&-end:before":{display:"none"}},[`${n}-switcher`]:{background:"transparent","&-line-icon":{verticalAlign:"-0.15em"}}},[`${r}-leaf-last ${n}-switcher-leaf-line:before`]:{top:"auto !important",bottom:"auto !important",height:`${U(t.calc(a).div(2).equal())} !important`}})}},VK=(e,t,n=!0)=>{const r=`.${e}`,o=`${r}-treenode`,a=t.calc(t.paddingXS).div(2).equal(),i=Rt(t,{treeCls:r,treeNodeCls:o,treeNodePadding:a});return[HK(e,i),n&&BK(i)].filter(Boolean)},WK=e=>{const{controlHeightSM:t,controlItemBgHover:n,controlItemBgActive:r}=e,o=t;return{titleHeight:o,indentSize:o,nodeHoverBg:n,nodeHoverColor:e.colorText,nodeSelectedBg:r,nodeSelectedColor:e.colorText}},KK=e=>{const{colorTextLightSolid:t,colorPrimary:n}=e;return Object.assign(Object.assign({},WK(e)),{directoryNodeSelectedColor:t,directoryNodeSelectedBg:n})},UK=Wt("Tree",(e,{prefixCls:t})=>[{[e.componentCls]:tP(`${t}-checkbox`,e)},VK(t,e),V0(e)],KK),g1=4;function GK(e){const{dropPosition:t,dropLevelOffset:n,prefixCls:r,indent:o,direction:a="ltr"}=e,i=a==="ltr"?"left":"right",l=a==="ltr"?"right":"left",c={[i]:-n*o+g1,[l]:0};switch(t){case-1:c.top=-3;break;case 1:c.bottom=-3;break;default:c.bottom=-3,c[i]=o+g1;break}return B.createElement("div",{style:c,className:`${r}-drop-indicator`})}const qK=e=>{var t,n;const{prefixCls:r,switcherIcon:o,treeNodeProps:a,showLine:i,switcherLoadingIcon:l}=e,{isLeaf:c,expanded:u,loading:d}=a;if(d)return s.isValidElement(l)?l:s.createElement(vi,{className:`${r}-switcher-loading-icon`});let f;if(i&&typeof i=="object"&&(f=i.showLeafIcon),c){if(!i)return null;if(typeof f!="boolean"&&f){const p=typeof f=="function"?f(a):f,b=`${r}-switcher-line-custom-icon`;return s.isValidElement(p)?nr(p,{className:G((t=p.props)===null||t===void 0?void 0:t.className,b)}):p}return f?s.createElement(IP,{className:`${r}-switcher-line-icon`}):s.createElement("span",{className:`${r}-switcher-leaf-line`})}const m=`${r}-switcher-icon`,v=typeof o=="function"?o(a):o;return s.isValidElement(v)?nr(v,{className:G((n=v.props)===null||n===void 0?void 0:n.className,m)}):v!==void 0?v:i?u?s.createElement(AV,{className:`${r}-switcher-line-icon`}):s.createElement(XV,{className:`${r}-switcher-line-icon`}):s.createElement(W9,{className:m})},XP=B.forwardRef((e,t)=>{var n;const{getPrefixCls:r,direction:o,virtual:a,tree:i}=B.useContext(lt),{prefixCls:l,className:c,showIcon:u=!1,showLine:d,switcherIcon:f,switcherLoadingIcon:m,blockNode:v=!1,children:p,checkable:b=!1,selectable:h=!0,draggable:g,motion:y,style:C}=e,x=r("tree",l),S=r(),w=y??Object.assign(Object.assign({},F0(S)),{motionAppear:!1}),E=Object.assign(Object.assign({},e),{checkable:b,selectable:h,showIcon:u,motion:w,blockNode:v,showLine:!!d,dropIndicatorRender:GK}),[O,$,R]=UK(x),[,I]=Kn(),N=I.paddingXS/2+(((n=I.Tree)===null||n===void 0?void 0:n.titleHeight)||I.controlHeightSM),T=B.useMemo(()=>{if(!g)return!1;let M={};switch(typeof g){case"function":M.nodeDraggable=g;break;case"object":M=Object.assign({},g);break}return M.icon!==!1&&(M.icon=M.icon||B.createElement(TV,null)),M},[g]),P=M=>B.createElement(qK,{prefixCls:x,switcherIcon:f,switcherLoadingIcon:m,treeNodeProps:M,showLine:d});return O(B.createElement(zy,Object.assign({itemHeight:N,ref:t,virtual:a},E,{style:Object.assign(Object.assign({},i==null?void 0:i.style),C),prefixCls:x,className:G({[`${x}-icon-hide`]:!u,[`${x}-block-node`]:v,[`${x}-unselectable`]:!h,[`${x}-rtl`]:o==="rtl"},i==null?void 0:i.className,c,$,R),direction:o,checkable:b&&B.createElement("span",{className:`${x}-checkbox-inner`}),selectable:h,switcherIcon:P,draggable:T}),p))}),h1=0,Fv=1,y1=2;function jy(e,t,n){const{key:r,children:o}=n;function a(i){const l=i[r],c=i[o];t(l,i)!==!1&&jy(c||[],t,n)}e.forEach(a)}function XK({treeData:e,expandedKeys:t,startKey:n,endKey:r,fieldNames:o}){const a=[];let i=h1;if(n&&n===r)return[n];if(!n||!r)return[];function l(c){return c===n||c===r}return jy(e,c=>{if(i===y1)return!1;if(l(c)){if(a.push(c),i===h1)i=Fv;else if(i===Fv)return i=y1,!1}else i===Fv&&a.push(c);return t.includes(c)},Pl(o)),a}function Hv(e,t,n){const r=he(t),o=[];return jy(e,(a,i)=>{const l=r.indexOf(a);return l!==-1&&(o.push(i),r.splice(l,1)),!!r.length},Pl(n)),o}var b1=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var{defaultExpandAll:n,defaultExpandParent:r,defaultExpandedKeys:o}=e,a=b1(e,["defaultExpandAll","defaultExpandParent","defaultExpandedKeys"]);const i=s.useRef(null),l=s.useRef(null),c=()=>{const{keyEntities:O}=wy(C1(a));let $;return n?$=Object.keys(O):r?$=ch(a.expandedKeys||o||[],O):$=a.expandedKeys||o||[],$},[u,d]=s.useState(a.selectedKeys||a.defaultSelectedKeys||[]),[f,m]=s.useState(()=>c());s.useEffect(()=>{"selectedKeys"in a&&d(a.selectedKeys)},[a.selectedKeys]),s.useEffect(()=>{"expandedKeys"in a&&m(a.expandedKeys)},[a.expandedKeys]);const v=(O,$)=>{var R;return"expandedKeys"in a||m(O),(R=a.onExpand)===null||R===void 0?void 0:R.call(a,O,$)},p=(O,$)=>{var R;const{multiple:I,fieldNames:N}=a,{node:T,nativeEvent:P}=$,{key:M=""}=T,_=C1(a),z=Object.assign(Object.assign({},$),{selected:!0}),j=(P==null?void 0:P.ctrlKey)||(P==null?void 0:P.metaKey),L=P==null?void 0:P.shiftKey;let F;I&&j?(F=O,i.current=M,l.current=F,z.selectedNodes=Hv(_,F,N)):I&&L?(F=Array.from(new Set([].concat(he(l.current||[]),he(XK({treeData:_,expandedKeys:f,startKey:M,endKey:i.current,fieldNames:N}))))),z.selectedNodes=Hv(_,F,N)):(F=[M],i.current=M,l.current=F,z.selectedNodes=Hv(_,F,N)),(R=a.onSelect)===null||R===void 0||R.call(a,F,z),"selectedKeys"in a||d(F)},{getPrefixCls:b,direction:h}=s.useContext(lt),{prefixCls:g,className:y,showIcon:C=!0,expandAction:x="click"}=a,S=b1(a,["prefixCls","className","showIcon","expandAction"]),w=b("tree",g),E=G(`${w}-directory`,{[`${w}-directory-rtl`]:h==="rtl"},y);return s.createElement(XP,Object.assign({icon:YK,ref:t,blockNode:!0},S,{showIcon:C,expandAction:x,prefixCls:w,className:E,expandedKeys:f,selectedKeys:u,onSelect:p,onExpand:v}))},JK=s.forwardRef(QK),Ly=XP;Ly.DirectoryTree=JK;Ly.TreeNode=yc;const S1=e=>{const{value:t,filterSearch:n,tablePrefixCls:r,locale:o,onChange:a}=e;return n?s.createElement("div",{className:`${r}-filter-dropdown-search`},s.createElement(Uc,{prefix:s.createElement(ay,null),placeholder:o.filterSearchPlaceholder,onChange:a,value:t,htmlSize:1,className:`${r}-filter-dropdown-search-input`})):null},ZK=e=>{const{keyCode:t}=e;t===ke.ENTER&&e.stopPropagation()},eU=s.forwardRef((e,t)=>s.createElement("div",{className:e.className,onClick:n=>n.stopPropagation(),onKeyDown:ZK,ref:t},e.children));function dl(e){let t=[];return(e||[]).forEach(({value:n,children:r})=>{t.push(n),r&&(t=[].concat(he(t),he(dl(r))))}),t}function tU(e){return e.some(({children:t})=>t)}function YP(e,t){return typeof t=="string"||typeof t=="number"?t==null?void 0:t.toString().toLowerCase().includes(e.trim().toLowerCase()):!1}function QP({filters:e,prefixCls:t,filteredKeys:n,filterMultiple:r,searchValue:o,filterSearch:a}){return e.map((i,l)=>{const c=String(i.value);if(i.children)return{key:c||l,label:i.text,popupClassName:`${t}-dropdown-submenu`,children:QP({filters:i.children,prefixCls:t,filteredKeys:n,filterMultiple:r,searchValue:o,filterSearch:a})};const u=r?Da:Hc,d={key:i.value!==void 0?c:l,label:s.createElement(s.Fragment,null,s.createElement(u,{checked:n.includes(c)}),s.createElement("span",null,i.text))};return o.trim()?typeof a=="function"?a(o,i)?d:null:YP(o,i.text)?d:null:d})}function Vv(e){return e||[]}const nU=e=>{var t,n,r,o;const{tablePrefixCls:a,prefixCls:i,column:l,dropdownPrefixCls:c,columnKey:u,filterOnClose:d,filterMultiple:f,filterMode:m="menu",filterSearch:v=!1,filterState:p,triggerFilter:b,locale:h,children:g,getPopupContainer:y,rootClassName:C}=e,{filterResetToDefaultFilteredValue:x,defaultFilteredValue:S,filterDropdownProps:w={},filterDropdownOpen:E,filterDropdownVisible:O,onFilterDropdownVisibleChange:$,onFilterDropdownOpenChange:R}=l,[I,N]=s.useState(!1),T=!!(p&&(!((t=p.filteredKeys)===null||t===void 0)&&t.length||p.forceFiltered)),P=oe=>{var se;N(oe),(se=w.onOpenChange)===null||se===void 0||se.call(w,oe),R==null||R(oe),$==null||$(oe)},M=(o=(r=(n=w.open)!==null&&n!==void 0?n:E)!==null&&r!==void 0?r:O)!==null&&o!==void 0?o:I,_=p==null?void 0:p.filteredKeys,[z,j]=RK(Vv(_)),L=({selectedKeys:oe})=>{j(oe)},F=(oe,{node:se,checked:ye})=>{L(f?{selectedKeys:oe}:{selectedKeys:ye&&se.key?[se.key]:[]})};s.useEffect(()=>{I&&L({selectedKeys:Vv(_)})},[_]);const[W,H]=s.useState([]),A=oe=>{H(oe)},[V,K]=s.useState(""),Y=oe=>{const{value:se}=oe.target;K(se)};s.useEffect(()=>{I||K("")},[I]);const re=oe=>{const se=oe!=null&&oe.length?oe:null;if(se===null&&(!p||!p.filteredKeys)||Do(se,p==null?void 0:p.filteredKeys,!0))return null;b({column:l,key:u,filteredKeys:se})},J=()=>{P(!1),re(z())},ae=({confirm:oe,closeDropdown:se}={confirm:!1,closeDropdown:!1})=>{oe&&re([]),se&&P(!1),K(""),j(x?(S||[]).map(ye=>String(ye)):[])},le=({closeDropdown:oe}={closeDropdown:!0})=>{oe&&P(!1),re(z())},te=(oe,se)=>{se.source==="trigger"&&(oe&&_!==void 0&&j(Vv(_)),P(oe),!oe&&!l.filterDropdown&&d&&J())},q=G({[`${c}-menu-without-submenu`]:!tU(l.filters||[])}),X=oe=>{if(oe.target.checked){const se=dl(l==null?void 0:l.filters).map(ye=>String(ye));j(se)}else j([])},Q=({filters:oe})=>(oe||[]).map((se,ye)=>{const ce=String(se.value),we={title:se.text,key:se.value!==void 0?ce:String(ye)};return se.children&&(we.children=Q({filters:se.children})),we}),Z=oe=>{var se;return Object.assign(Object.assign({},oe),{text:oe.title,value:oe.key,children:((se=oe.children)===null||se===void 0?void 0:se.map(ye=>Z(ye)))||[]})};let ne;const{direction:ie,renderEmpty:fe}=s.useContext(lt);if(typeof l.filterDropdown=="function")ne=l.filterDropdown({prefixCls:`${c}-custom`,setSelectedKeys:oe=>L({selectedKeys:oe}),selectedKeys:z(),confirm:le,clearFilters:ae,filters:l.filters,visible:M,close:()=>{P(!1)}});else if(l.filterDropdown)ne=l.filterDropdown;else{const oe=z()||[],se=()=>{var ce,we;const Oe=(ce=fe==null?void 0:fe("Table.filter"))!==null&&ce!==void 0?ce:s.createElement(Ko,{image:Ko.PRESENTED_IMAGE_SIMPLE,description:h.filterEmptyText,styles:{image:{height:24}},style:{margin:0,padding:"16px 0"}});if((l.filters||[]).length===0)return Oe;if(m==="tree")return s.createElement(s.Fragment,null,s.createElement(S1,{filterSearch:v,value:V,onChange:Y,tablePrefixCls:a,locale:h}),s.createElement("div",{className:`${a}-filter-dropdown-tree`},f?s.createElement(Da,{checked:oe.length===dl(l.filters).length,indeterminate:oe.length>0&&oe.lengthtypeof v=="function"?v(V,Z(xe)):YP(V,xe.title):void 0})));const Le=QP({filters:l.filters||[],filterSearch:v,prefixCls:i,filteredKeys:z(),filterMultiple:f,searchValue:V}),je=Le.every(xe=>xe===null);return s.createElement(s.Fragment,null,s.createElement(S1,{filterSearch:v,value:V,onChange:Y,tablePrefixCls:a,locale:h}),je?Oe:s.createElement($i,{selectable:!0,multiple:f,prefixCls:`${c}-menu`,className:q,onSelect:L,onDeselect:L,selectedKeys:oe,getPopupContainer:y,openKeys:W,onOpenChange:A,items:Le}))},ye=()=>x?Do((S||[]).map(ce=>String(ce)),oe,!0):oe.length===0;ne=s.createElement(s.Fragment,null,se(),s.createElement("div",{className:`${i}-dropdown-btns`},s.createElement(rr,{type:"link",size:"small",disabled:ye(),onClick:()=>ae()},h.filterReset),s.createElement(rr,{type:"primary",size:"small",onClick:J},h.filterConfirm)))}l.filterDropdown&&(ne=s.createElement(zR,{selectable:void 0},ne)),ne=s.createElement(eU,{className:`${i}-dropdown`},ne);const Se=Fd({trigger:["click"],placement:ie==="rtl"?"bottomLeft":"bottomRight",children:(()=>{let oe;return typeof l.filterIcon=="function"?oe=l.filterIcon(T):l.filterIcon?oe=l.filterIcon:oe=s.createElement(xV,null),s.createElement("span",{role:"button",tabIndex:-1,className:G(`${i}-trigger`,{active:T}),onClick:se=>{se.stopPropagation()}},oe)})(),getPopupContainer:y},Object.assign(Object.assign({},w),{rootClassName:G(C,w.rootClassName),open:M,onOpenChange:te,popupRender:()=>typeof(w==null?void 0:w.dropdownRender)=="function"?w.dropdownRender(ne):ne}));return s.createElement("div",{className:`${i}-column`},s.createElement("span",{className:`${a}-column-title`},g),s.createElement($y,Object.assign({},Se)))},vh=(e,t,n)=>{let r=[];return(e||[]).forEach((o,a)=>{var i;const l=Hl(a,n),c=o.filterDropdown!==void 0;if(o.filters||c||"onFilter"in o)if("filteredValue"in o){let u=o.filteredValue;c||(u=(i=u==null?void 0:u.map(String))!==null&&i!==void 0?i:u),r.push({column:o,key:Aa(o,l),filteredKeys:u,forceFiltered:o.filtered})}else r.push({column:o,key:Aa(o,l),filteredKeys:t&&o.defaultFilteredValue?o.defaultFilteredValue:void 0,forceFiltered:o.filtered});"children"in o&&(r=[].concat(he(r),he(vh(o.children,t,l))))}),r};function JP(e,t,n,r,o,a,i,l,c){return n.map((u,d)=>{const f=Hl(d,l),{filterOnClose:m=!0,filterMultiple:v=!0,filterMode:p,filterSearch:b}=u;let h=u;if(h.filters||h.filterDropdown){const g=Aa(h,f),y=r.find(({key:C})=>g===C);h=Object.assign(Object.assign({},h),{title:C=>s.createElement(nU,{tablePrefixCls:e,prefixCls:`${e}-filter`,dropdownPrefixCls:t,column:h,columnKey:g,filterState:y,filterOnClose:m,filterMultiple:v,filterMode:p,filterSearch:b,triggerFilter:a,locale:o,getPopupContainer:i,rootClassName:c},hm(u.title,C))})}return"children"in h&&(h=Object.assign(Object.assign({},h),{children:JP(e,t,h.children,r,o,a,i,f,c)})),h})}const x1=e=>{const t={};return e.forEach(({key:n,filteredKeys:r,column:o})=>{const a=n,{filters:i,filterDropdown:l}=o;if(l)t[a]=r||null;else if(Array.isArray(r)){const c=dl(i);t[a]=c.filter(u=>r.includes(String(u)))}else t[a]=null}),t},ph=(e,t,n)=>t.reduce((o,a)=>{const{column:{onFilter:i,filters:l},filteredKeys:c}=a;return i&&c&&c.length?o.map(u=>Object.assign({},u)).filter(u=>c.some(d=>{const f=dl(l),m=f.findIndex(p=>String(p)===String(d)),v=m!==-1?f[m]:d;return u[n]&&(u[n]=ph(u[n],t,n)),i(v,u)})):o},e),ZP=e=>e.flatMap(t=>"children"in t?[t].concat(he(ZP(t.children||[]))):[t]),rU=e=>{const{prefixCls:t,dropdownPrefixCls:n,mergedColumns:r,onFilterChange:o,getPopupContainer:a,locale:i,rootClassName:l}=e;Si();const c=s.useMemo(()=>ZP(r||[]),[r]),[u,d]=s.useState(()=>vh(c,!0)),f=s.useMemo(()=>{const b=vh(c,!1);if(b.length===0)return b;let h=!0;if(b.forEach(({filteredKeys:g})=>{g!==void 0&&(h=!1)}),h){const g=(c||[]).map((y,C)=>Aa(y,Hl(C)));return u.filter(({key:y})=>g.includes(y)).map(y=>{const C=c[g.findIndex(x=>x===y.key)];return Object.assign(Object.assign({},y),{column:Object.assign(Object.assign({},y.column),C),forceFiltered:C.filtered})})}return b},[c,u]),m=s.useMemo(()=>x1(f),[f]),v=b=>{const h=f.filter(({key:g})=>g!==b.key);h.push(b),d(h),o(x1(h),h)};return[b=>JP(t,n,b,f,i,v,a,void 0,l),f,m]},oU=(e,t,n)=>{const r=s.useRef({});function o(a){var i;if(!r.current||r.current.data!==e||r.current.childrenColumnName!==t||r.current.getRowKey!==n){let u=function(d){d.forEach((f,m)=>{const v=n(f,m);c.set(v,f),f&&typeof f=="object"&&t in f&&u(f[t]||[])})};var l=u;const c=new Map;u(e),r.current={data:e,childrenColumnName:t,kvMap:c,getRowKey:n}}return(i=r.current.kvMap)===null||i===void 0?void 0:i.get(a)}return[o]};var aU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const a=e[o];typeof a!="function"&&(n[o]=a)}),n}function lU(e,t,n){const r=n&&typeof n=="object"?n:{},{total:o=0}=r,a=aU(r,["total"]),[i,l]=s.useState(()=>({current:"defaultCurrent"in a?a.defaultCurrent:1,pageSize:"defaultPageSize"in a?a.defaultPageSize:eI})),c=Fd(i,a,{total:o>0?o:e}),u=Math.ceil((o||e)/c.pageSize);c.current>u&&(c.current=u||1);const d=(m,v)=>{l({current:m??1,pageSize:v||c.pageSize})},f=(m,v)=>{var p;n&&((p=n.onChange)===null||p===void 0||p.call(n,m,v)),d(m,v),t(m,v||(c==null?void 0:c.pageSize))};return n===!1?[{},()=>{}]:[Object.assign(Object.assign({},c),{onChange:f}),d]}const rd="ascend",Wv="descend",Zd=e=>typeof e.sorter=="object"&&typeof e.sorter.multiple=="number"?e.sorter.multiple:!1,w1=e=>typeof e=="function"?e:e&&typeof e=="object"&&e.compare?e.compare:!1,sU=(e,t)=>t?e[e.indexOf(t)+1]:e[0],gh=(e,t,n)=>{let r=[];const o=(a,i)=>{r.push({column:a,key:Aa(a,i),multiplePriority:Zd(a),sortOrder:a.sortOrder})};return(e||[]).forEach((a,i)=>{const l=Hl(i,n);a.children?("sortOrder"in a&&o(a,l),r=[].concat(he(r),he(gh(a.children,t,l)))):a.sorter&&("sortOrder"in a?o(a,l):t&&a.defaultSortOrder&&r.push({column:a,key:Aa(a,l),multiplePriority:Zd(a),sortOrder:a.defaultSortOrder}))}),r},tI=(e,t,n,r,o,a,i,l)=>(t||[]).map((u,d)=>{const f=Hl(d,l);let m=u;if(m.sorter){const v=m.sortDirections||o,p=m.showSorterTooltip===void 0?i:m.showSorterTooltip,b=Aa(m,f),h=n.find(({key:$})=>$===b),g=h?h.sortOrder:null,y=sU(v,g);let C;if(u.sortIcon)C=u.sortIcon({sortOrder:g});else{const $=v.includes(rd)&&s.createElement(Y9,{className:G(`${e}-column-sorter-up`,{active:g===rd})}),R=v.includes(Wv)&&s.createElement(G9,{className:G(`${e}-column-sorter-down`,{active:g===Wv})});C=s.createElement("span",{className:G(`${e}-column-sorter`,{[`${e}-column-sorter-full`]:!!($&&R)})},s.createElement("span",{className:`${e}-column-sorter-inner`,"aria-hidden":"true"},$,R))}const{cancelSort:x,triggerAsc:S,triggerDesc:w}=a||{};let E=x;y===Wv?E=w:y===rd&&(E=S);const O=typeof p=="object"?Object.assign({title:E},p):{title:E};m=Object.assign(Object.assign({},m),{className:G(m.className,{[`${e}-column-sort`]:g}),title:$=>{const R=`${e}-column-sorters`,I=s.createElement("span",{className:`${e}-column-title`},hm(u.title,$)),N=s.createElement("div",{className:R},I,C);return p?typeof p!="boolean"&&(p==null?void 0:p.target)==="sorter-icon"?s.createElement("div",{className:`${R} ${e}-column-sorters-tooltip-target-sorter`},I,s.createElement(xo,Object.assign({},O),C)):s.createElement(xo,Object.assign({},O),N):N},onHeaderCell:$=>{var R;const I=((R=u.onHeaderCell)===null||R===void 0?void 0:R.call(u,$))||{},N=I.onClick,T=I.onKeyDown;I.onClick=_=>{r({column:u,key:b,sortOrder:y,multiplePriority:Zd(u)}),N==null||N(_)},I.onKeyDown=_=>{_.keyCode===ke.ENTER&&(r({column:u,key:b,sortOrder:y,multiplePriority:Zd(u)}),T==null||T(_))};const P=OK(u.title,{}),M=P==null?void 0:P.toString();return g&&(I["aria-sort"]=g==="ascend"?"ascending":"descending"),I["aria-label"]=M||"",I.className=G(I.className,`${e}-column-has-sorters`),I.tabIndex=0,u.ellipsis&&(I.title=(P??"").toString()),I}})}return"children"in m&&(m=Object.assign(Object.assign({},m),{children:tI(e,m.children,n,r,o,a,i,f)})),m}),$1=e=>{const{column:t,sortOrder:n}=e;return{column:t,order:n,field:t.dataIndex,columnKey:t.key}},E1=e=>{const t=e.filter(({sortOrder:n})=>n).map($1);if(t.length===0&&e.length){const n=e.length-1;return Object.assign(Object.assign({},$1(e[n])),{column:void 0,order:void 0,field:void 0,columnKey:void 0})}return t.length<=1?t[0]||{}:t},hh=(e,t,n)=>{const r=t.slice().sort((i,l)=>l.multiplePriority-i.multiplePriority),o=e.slice(),a=r.filter(({column:{sorter:i},sortOrder:l})=>w1(i)&&l);return a.length?o.sort((i,l)=>{for(let c=0;c{const l=i[n];return l?Object.assign(Object.assign({},i),{[n]:hh(l,t,n)}):i}):o},cU=e=>{const{prefixCls:t,mergedColumns:n,sortDirections:r,tableLocale:o,showSorterTooltip:a,onSorterChange:i}=e,[l,c]=s.useState(()=>gh(n,!0)),u=(b,h)=>{const g=[];return b.forEach((y,C)=>{const x=Hl(C,h);if(g.push(Aa(y,x)),Array.isArray(y.children)){const S=u(y.children,x);g.push.apply(g,he(S))}}),g},d=s.useMemo(()=>{let b=!0;const h=gh(n,!1);if(!h.length){const x=u(n);return l.filter(({key:S})=>x.includes(S))}const g=[];function y(x){b?g.push(x):g.push(Object.assign(Object.assign({},x),{sortOrder:null}))}let C=null;return h.forEach(x=>{C===null?(y(x),x.sortOrder&&(x.multiplePriority===!1?b=!1:C=!0)):(C&&x.multiplePriority!==!1||(b=!1),y(x))}),g},[n,l]),f=s.useMemo(()=>{var b,h;const g=d.map(({column:y,sortOrder:C})=>({column:y,order:C}));return{sortColumns:g,sortColumn:(b=g[0])===null||b===void 0?void 0:b.column,sortOrder:(h=g[0])===null||h===void 0?void 0:h.order}},[d]),m=b=>{let h;b.multiplePriority===!1||!d.length||d[0].multiplePriority===!1?h=[b]:h=[].concat(he(d.filter(({key:g})=>g!==b.key)),[b]),c(h),i(E1(h),h)};return[b=>tI(t,b,d,m,r,o,a),d,f,()=>E1(d)]},nI=(e,t)=>e.map(r=>{const o=Object.assign({},r);return o.title=hm(r.title,t),"children"in o&&(o.children=nI(o.children,t)),o}),uU=e=>[s.useCallback(n=>nI(n,e),[e])],dU=VP((e,t)=>{const{_renderTimes:n}=e,{_renderTimes:r}=t;return n!==r}),fU=KP((e,t)=>{const{_renderTimes:n}=e,{_renderTimes:r}=t;return n!==r}),mU=e=>{const{componentCls:t,lineWidth:n,lineType:r,tableBorderColor:o,tableHeaderBg:a,tablePaddingVertical:i,tablePaddingHorizontal:l,calc:c}=e,u=`${U(n)} ${r} ${o}`,d=(f,m,v)=>({[`&${t}-${f}`]:{[`> ${t}-container`]:{[`> ${t}-content, > ${t}-body`]:{"\n > table > tbody > tr > th,\n > table > tbody > tr > td\n ":{[`> ${t}-expanded-row-fixed`]:{margin:`${U(c(m).mul(-1).equal())} + ${U(c(c(v).add(n)).mul(-1).equal())}`}}}}}});return{[`${t}-wrapper`]:{[`${t}${t}-bordered`]:Object.assign(Object.assign(Object.assign({[`> ${t}-title`]:{border:u,borderBottom:0},[`> ${t}-container`]:{borderInlineStart:u,borderTop:u,[` + > ${t}-content, + > ${t}-header, + > ${t}-body, + > ${t}-summary + `]:{"> table":{"\n > thead > tr > th,\n > thead > tr > td,\n > tbody > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td\n ":{borderInlineEnd:u},"> thead":{"> tr:not(:last-child) > th":{borderBottom:u},"> tr > th::before":{backgroundColor:"transparent !important"}},"\n > thead > tr,\n > tbody > tr,\n > tfoot > tr\n ":{[`> ${t}-cell-fix-right-first::after`]:{borderInlineEnd:u}},"\n > tbody > tr > th,\n > tbody > tr > td\n ":{[`> ${t}-expanded-row-fixed`]:{margin:`${U(c(i).mul(-1).equal())} ${U(c(c(l).add(n)).mul(-1).equal())}`,"&::after":{position:"absolute",top:0,insetInlineEnd:n,bottom:0,borderInlineEnd:u,content:'""'}}}}}},[`&${t}-scroll-horizontal`]:{[`> ${t}-container > ${t}-body`]:{"> table > tbody":{[` + > tr${t}-expanded-row, + > tr${t}-placeholder + `]:{"> th, > td":{borderInlineEnd:0}}}}}},d("middle",e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle)),d("small",e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall)),{[`> ${t}-footer`]:{border:u,borderTop:0}}),[`${t}-cell`]:{[`${t}-container:first-child`]:{borderTop:0},"&-scrollbar:not([rowspan])":{boxShadow:`0 ${U(n)} 0 ${U(n)} ${a}`}},[`${t}-bordered ${t}-cell-scrollbar`]:{borderInlineEnd:u}}}},vU=e=>{const{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-cell-ellipsis`]:Object.assign(Object.assign({},Bo),{wordBreak:"keep-all",[` + &${t}-cell-fix-left-last, + &${t}-cell-fix-right-first + `]:{overflow:"visible",[`${t}-cell-content`]:{display:"block",overflow:"hidden",textOverflow:"ellipsis"}},[`${t}-column-title`]:{overflow:"hidden",textOverflow:"ellipsis",wordBreak:"keep-all"}})}}},pU=e=>{const{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-tbody > tr${t}-placeholder`]:{textAlign:"center",color:e.colorTextDisabled,"\n &:hover > th,\n &:hover > td,\n ":{background:e.colorBgContainer}}}}},gU=e=>{const{componentCls:t,antCls:n,motionDurationSlow:r,lineWidth:o,paddingXS:a,lineType:i,tableBorderColor:l,tableExpandIconBg:c,tableExpandColumnWidth:u,borderRadius:d,tablePaddingVertical:f,tablePaddingHorizontal:m,tableExpandedRowBg:v,paddingXXS:p,expandIconMarginTop:b,expandIconSize:h,expandIconHalfInner:g,expandIconScale:y,calc:C}=e,x=`${U(o)} ${i} ${l}`,S=C(p).sub(o).equal();return{[`${t}-wrapper`]:{[`${t}-expand-icon-col`]:{width:u},[`${t}-row-expand-icon-cell`]:{textAlign:"center",[`${t}-row-expand-icon`]:{display:"inline-flex",float:"none",verticalAlign:"sub"}},[`${t}-row-indent`]:{height:1,float:"left"},[`${t}-row-expand-icon`]:Object.assign(Object.assign({},j0(e)),{position:"relative",float:"left",width:h,height:h,color:"inherit",lineHeight:U(h),background:c,border:x,borderRadius:d,transform:`scale(${y})`,"&:focus, &:hover, &:active":{borderColor:"currentcolor"},"&::before, &::after":{position:"absolute",background:"currentcolor",transition:`transform ${r} ease-out`,content:'""'},"&::before":{top:g,insetInlineEnd:S,insetInlineStart:S,height:o},"&::after":{top:S,bottom:S,insetInlineStart:g,width:o,transform:"rotate(90deg)"},"&-collapsed::before":{transform:"rotate(-180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"},"&-spaced":{"&::before, &::after":{display:"none",content:"none"},background:"transparent",border:0,visibility:"hidden"}}),[`${t}-row-indent + ${t}-row-expand-icon`]:{marginTop:b,marginInlineEnd:a},[`tr${t}-expanded-row`]:{"&, &:hover":{"> th, > td":{background:v}},[`${n}-descriptions-view`]:{display:"flex",table:{flex:"auto",width:"100%"}}},[`${t}-expanded-row-fixed`]:{position:"relative",margin:`${U(C(f).mul(-1).equal())} ${U(C(m).mul(-1).equal())}`,padding:`${U(f)} ${U(m)}`}}}},hU=e=>{const{componentCls:t,antCls:n,iconCls:r,tableFilterDropdownWidth:o,tableFilterDropdownSearchWidth:a,paddingXXS:i,paddingXS:l,colorText:c,lineWidth:u,lineType:d,tableBorderColor:f,headerIconColor:m,fontSizeSM:v,tablePaddingHorizontal:p,borderRadius:b,motionDurationSlow:h,colorIcon:g,colorPrimary:y,tableHeaderFilterActiveBg:C,colorTextDisabled:x,tableFilterDropdownBg:S,tableFilterDropdownHeight:w,controlItemBgHover:E,controlItemBgActive:O,boxShadowSecondary:$,filterDropdownMenuBg:R,calc:I}=e,N=`${n}-dropdown`,T=`${t}-filter-dropdown`,P=`${n}-tree`,M=`${U(u)} ${d} ${f}`;return[{[`${t}-wrapper`]:{[`${t}-filter-column`]:{display:"flex",justifyContent:"space-between"},[`${t}-filter-trigger`]:{position:"relative",display:"flex",alignItems:"center",marginBlock:I(i).mul(-1).equal(),marginInline:`${U(i)} ${U(I(p).div(2).mul(-1).equal())}`,padding:`0 ${U(i)}`,color:m,fontSize:v,borderRadius:b,cursor:"pointer",transition:`all ${h}`,"&:hover":{color:g,background:C},"&.active":{color:y}}}},{[`${n}-dropdown`]:{[T]:Object.assign(Object.assign({},Jt(e)),{minWidth:o,backgroundColor:S,borderRadius:b,boxShadow:$,overflow:"hidden",[`${N}-menu`]:{maxHeight:w,overflowX:"hidden",border:0,boxShadow:"none",borderRadius:"unset",backgroundColor:R,"&:empty::after":{display:"block",padding:`${U(l)} 0`,color:x,fontSize:v,textAlign:"center",content:'"Not Found"'}},[`${T}-tree`]:{paddingBlock:`${U(l)} 0`,paddingInline:l,[P]:{padding:0},[`${P}-treenode ${P}-node-content-wrapper:hover`]:{backgroundColor:E},[`${P}-treenode-checkbox-checked ${P}-node-content-wrapper`]:{"&, &:hover":{backgroundColor:O}}},[`${T}-search`]:{padding:l,borderBottom:M,"&-input":{input:{minWidth:a},[r]:{color:x}}},[`${T}-checkall`]:{width:"100%",marginBottom:i,marginInlineStart:i},[`${T}-btns`]:{display:"flex",justifyContent:"space-between",padding:`${U(I(l).sub(u).equal())} ${U(l)}`,overflow:"hidden",borderTop:M}})}},{[`${n}-dropdown ${T}, ${T}-submenu`]:{[`${n}-checkbox-wrapper + span`]:{paddingInlineStart:l,color:c},"> ul":{maxHeight:"calc(100vh - 130px)",overflowX:"hidden",overflowY:"auto"}}}]},yU=e=>{const{componentCls:t,lineWidth:n,colorSplit:r,motionDurationSlow:o,zIndexTableFixed:a,tableBg:i,zIndexTableSticky:l,calc:c}=e,u=r;return{[`${t}-wrapper`]:{[` + ${t}-cell-fix-left, + ${t}-cell-fix-right + `]:{position:"sticky !important",zIndex:a,background:i},[` + ${t}-cell-fix-left-first::after, + ${t}-cell-fix-left-last::after + `]:{position:"absolute",top:0,right:{_skip_check_:!0,value:0},bottom:c(n).mul(-1).equal(),width:30,transform:"translateX(100%)",transition:`box-shadow ${o}`,content:'""',pointerEvents:"none"},[`${t}-cell-fix-left-all::after`]:{display:"none"},[` + ${t}-cell-fix-right-first::after, + ${t}-cell-fix-right-last::after + `]:{position:"absolute",top:0,bottom:c(n).mul(-1).equal(),left:{_skip_check_:!0,value:0},width:30,transform:"translateX(-100%)",transition:`box-shadow ${o}`,content:'""',pointerEvents:"none"},[`${t}-container`]:{position:"relative","&::before, &::after":{position:"absolute",top:0,bottom:0,zIndex:c(l).add(1).equal({unit:!1}),width:30,transition:`box-shadow ${o}`,content:'""',pointerEvents:"none"},"&::before":{insetInlineStart:0},"&::after":{insetInlineEnd:0}},[`${t}-ping-left`]:{[`&:not(${t}-has-fix-left) ${t}-container::before`]:{boxShadow:`inset 10px 0 8px -8px ${u}`},[` + ${t}-cell-fix-left-first::after, + ${t}-cell-fix-left-last::after + `]:{boxShadow:`inset 10px 0 8px -8px ${u}`},[`${t}-cell-fix-left-last::before`]:{backgroundColor:"transparent !important"}},[`${t}-ping-right`]:{[`&:not(${t}-has-fix-right) ${t}-container::after`]:{boxShadow:`inset -10px 0 8px -8px ${u}`},[` + ${t}-cell-fix-right-first::after, + ${t}-cell-fix-right-last::after + `]:{boxShadow:`inset -10px 0 8px -8px ${u}`}},[`${t}-fixed-column-gapped`]:{[` + ${t}-cell-fix-left-first::after, + ${t}-cell-fix-left-last::after, + ${t}-cell-fix-right-first::after, + ${t}-cell-fix-right-last::after + `]:{boxShadow:"none"}}}}},bU=e=>{const{componentCls:t,antCls:n,margin:r}=e;return{[`${t}-wrapper`]:{[`${t}-pagination${n}-pagination`]:{margin:`${U(r)} 0`},[`${t}-pagination`]:{display:"flex",flexWrap:"wrap",rowGap:e.paddingXS,"> *":{flex:"none"},"&-left":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-right":{justifyContent:"flex-end"}}}}},CU=e=>{const{componentCls:t,tableRadius:n}=e;return{[`${t}-wrapper`]:{[t]:{[`${t}-title, ${t}-header`]:{borderRadius:`${U(n)} ${U(n)} 0 0`},[`${t}-title + ${t}-container`]:{borderStartStartRadius:0,borderStartEndRadius:0,[`${t}-header, table`]:{borderRadius:0},"table > thead > tr:first-child":{"th:first-child, th:last-child, td:first-child, td:last-child":{borderRadius:0}}},"&-container":{borderStartStartRadius:n,borderStartEndRadius:n,"table > thead > tr:first-child":{"> *:first-child":{borderStartStartRadius:n},"> *:last-child":{borderStartEndRadius:n}}},"&-footer":{borderRadius:`0 0 ${U(n)} ${U(n)}`}}}}},SU=e=>{const{componentCls:t}=e;return{[`${t}-wrapper-rtl`]:{direction:"rtl",table:{direction:"rtl"},[`${t}-pagination-left`]:{justifyContent:"flex-end"},[`${t}-pagination-right`]:{justifyContent:"flex-start"},[`${t}-row-expand-icon`]:{float:"right","&::after":{transform:"rotate(-90deg)"},"&-collapsed::before":{transform:"rotate(180deg)"},"&-collapsed::after":{transform:"rotate(0deg)"}},[`${t}-container`]:{"&::before":{insetInlineStart:"unset",insetInlineEnd:0},"&::after":{insetInlineStart:0,insetInlineEnd:"unset"},[`${t}-row-indent`]:{float:"right"}}}}},xU=e=>{const{componentCls:t,antCls:n,iconCls:r,fontSizeIcon:o,padding:a,paddingXS:i,headerIconColor:l,headerIconHoverColor:c,tableSelectionColumnWidth:u,tableSelectedRowBg:d,tableSelectedRowHoverBg:f,tableRowHoverBg:m,tablePaddingHorizontal:v,calc:p}=e;return{[`${t}-wrapper`]:{[`${t}-selection-col`]:{width:u,[`&${t}-selection-col-with-dropdown`]:{width:p(u).add(o).add(p(a).div(4)).equal()}},[`${t}-bordered ${t}-selection-col`]:{width:p(u).add(p(i).mul(2)).equal(),[`&${t}-selection-col-with-dropdown`]:{width:p(u).add(o).add(p(a).div(4)).add(p(i).mul(2)).equal()}},[` + table tr th${t}-selection-column, + table tr td${t}-selection-column, + ${t}-selection-column + `]:{paddingInlineEnd:e.paddingXS,paddingInlineStart:e.paddingXS,textAlign:"center",[`${n}-radio-wrapper`]:{marginInlineEnd:0}},[`table tr th${t}-selection-column${t}-cell-fix-left`]:{zIndex:p(e.zIndexTableFixed).add(1).equal({unit:!1})},[`table tr th${t}-selection-column::after`]:{backgroundColor:"transparent !important"},[`${t}-selection`]:{position:"relative",display:"inline-flex",flexDirection:"column"},[`${t}-selection-extra`]:{position:"absolute",top:0,zIndex:1,cursor:"pointer",transition:`all ${e.motionDurationSlow}`,marginInlineStart:"100%",paddingInlineStart:U(p(v).div(4).equal()),[r]:{color:l,fontSize:o,verticalAlign:"baseline","&:hover":{color:c}}},[`${t}-tbody`]:{[`${t}-row`]:{[`&${t}-row-selected`]:{[`> ${t}-cell`]:{background:d,"&-row-hover":{background:f}}},[`> ${t}-cell-row-hover`]:{background:m}}}}}},wU=e=>{const{componentCls:t,tableExpandColumnWidth:n,calc:r}=e,o=(a,i,l,c)=>({[`${t}${t}-${a}`]:{fontSize:c,[` + ${t}-title, + ${t}-footer, + ${t}-cell, + ${t}-thead > tr > th, + ${t}-tbody > tr > th, + ${t}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{padding:`${U(i)} ${U(l)}`},[`${t}-filter-trigger`]:{marginInlineEnd:U(r(l).div(2).mul(-1).equal())},[`${t}-expanded-row-fixed`]:{margin:`${U(r(i).mul(-1).equal())} ${U(r(l).mul(-1).equal())}`},[`${t}-tbody`]:{[`${t}-wrapper:only-child ${t}`]:{marginBlock:U(r(i).mul(-1).equal()),marginInline:`${U(r(n).sub(l).equal())} ${U(r(l).mul(-1).equal())}`}},[`${t}-selection-extra`]:{paddingInlineStart:U(r(l).div(4).equal())}}});return{[`${t}-wrapper`]:Object.assign(Object.assign({},o("middle",e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle,e.tableFontSizeMiddle)),o("small",e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall,e.tableFontSizeSmall))}},$U=e=>{const{componentCls:t,marginXXS:n,fontSizeIcon:r,headerIconColor:o,headerIconHoverColor:a}=e;return{[`${t}-wrapper`]:{[`${t}-thead th${t}-column-has-sorters`]:{outline:"none",cursor:"pointer",transition:`all ${e.motionDurationSlow}, left 0s`,"&:hover":{background:e.tableHeaderSortHoverBg,"&::before":{backgroundColor:"transparent !important"}},"&:focus-visible":{color:e.colorPrimary},[` + &${t}-cell-fix-left:hover, + &${t}-cell-fix-right:hover + `]:{background:e.tableFixedHeaderSortActiveBg}},[`${t}-thead th${t}-column-sort`]:{background:e.tableHeaderSortBg,"&::before":{backgroundColor:"transparent !important"}},[`td${t}-column-sort`]:{background:e.tableBodySortBg},[`${t}-column-title`]:{position:"relative",zIndex:1,flex:1,minWidth:0},[`${t}-column-sorters`]:{display:"flex",flex:"auto",alignItems:"center",justifyContent:"space-between","&::after":{position:"absolute",inset:0,width:"100%",height:"100%",content:'""'}},[`${t}-column-sorters-tooltip-target-sorter`]:{"&::after":{content:"none"}},[`${t}-column-sorter`]:{marginInlineStart:n,color:o,fontSize:0,transition:`color ${e.motionDurationSlow}`,"&-inner":{display:"inline-flex",flexDirection:"column",alignItems:"center"},"&-up, &-down":{fontSize:r,"&.active":{color:e.colorPrimary}},[`${t}-column-sorter-up + ${t}-column-sorter-down`]:{marginTop:"-0.3em"}},[`${t}-column-sorters:hover ${t}-column-sorter`]:{color:a}}}},EU=e=>{const{componentCls:t,opacityLoading:n,tableScrollThumbBg:r,tableScrollThumbBgHover:o,tableScrollThumbSize:a,tableScrollBg:i,zIndexTableSticky:l,stickyScrollBarBorderRadius:c,lineWidth:u,lineType:d,tableBorderColor:f}=e,m=`${U(u)} ${d} ${f}`;return{[`${t}-wrapper`]:{[`${t}-sticky`]:{"&-holder":{position:"sticky",zIndex:l,background:e.colorBgContainer},"&-scroll":{position:"sticky",bottom:0,height:`${U(a)} !important`,zIndex:l,display:"flex",alignItems:"center",background:i,borderTop:m,opacity:n,"&:hover":{transformOrigin:"center bottom"},"&-bar":{height:a,backgroundColor:r,borderRadius:c,transition:`all ${e.motionDurationSlow}, transform 0s`,position:"absolute",bottom:0,"&:hover, &-active":{backgroundColor:o}}}}}}},O1=e=>{const{componentCls:t,lineWidth:n,tableBorderColor:r,calc:o}=e,a=`${U(n)} ${e.lineType} ${r}`;return{[`${t}-wrapper`]:{[`${t}-summary`]:{position:"relative",zIndex:e.zIndexTableFixed,background:e.tableBg,"> tr":{"> th, > td":{borderBottom:a}}},[`div${t}-summary`]:{boxShadow:`0 ${U(o(n).mul(-1).equal())} 0 ${r}`}}}},OU=e=>{const{componentCls:t,motionDurationMid:n,lineWidth:r,lineType:o,tableBorderColor:a,calc:i}=e,l=`${U(r)} ${o} ${a}`,c=`${t}-expanded-row-cell`;return{[`${t}-wrapper`]:{[`${t}-tbody-virtual`]:{[`${t}-tbody-virtual-holder-inner`]:{[` + & > ${t}-row, + & > div:not(${t}-row) > ${t}-row + `]:{display:"flex",boxSizing:"border-box",width:"100%"}},[`${t}-cell`]:{borderBottom:l,transition:`background ${n}`},[`${t}-expanded-row`]:{[`${c}${c}-fixed`]:{position:"sticky",insetInlineStart:0,overflow:"hidden",width:`calc(var(--virtual-width) - ${U(r)})`,borderInlineEnd:"none"}}},[`${t}-bordered`]:{[`${t}-tbody-virtual`]:{"&:after":{content:'""',insetInline:0,bottom:0,borderBottom:l,position:"absolute"},[`${t}-cell`]:{borderInlineEnd:l,[`&${t}-cell-fix-right-first:before`]:{content:'""',position:"absolute",insetBlock:0,insetInlineStart:i(r).mul(-1).equal(),borderInlineStart:l}}},[`&${t}-virtual`]:{[`${t}-placeholder ${t}-cell`]:{borderInlineEnd:l,borderBottom:l}}}}}},RU=e=>{const{componentCls:t,fontWeightStrong:n,tablePaddingVertical:r,tablePaddingHorizontal:o,tableExpandColumnWidth:a,lineWidth:i,lineType:l,tableBorderColor:c,tableFontSize:u,tableBg:d,tableRadius:f,tableHeaderTextColor:m,motionDurationMid:v,tableHeaderBg:p,tableHeaderCellSplitColor:b,tableFooterTextColor:h,tableFooterBg:g,calc:y}=e,C=`${U(i)} ${l} ${c}`;return{[`${t}-wrapper`]:Object.assign(Object.assign({clear:"both",maxWidth:"100%","--rc-virtual-list-scrollbar-bg":e.tableScrollBg},Co()),{[t]:Object.assign(Object.assign({},Jt(e)),{fontSize:u,background:d,borderRadius:`${U(f)} ${U(f)} 0 0`,scrollbarColor:`${e.tableScrollThumbBg} ${e.tableScrollBg}`}),table:{width:"100%",textAlign:"start",borderRadius:`${U(f)} ${U(f)} 0 0`,borderCollapse:"separate",borderSpacing:0},[` + ${t}-cell, + ${t}-thead > tr > th, + ${t}-tbody > tr > th, + ${t}-tbody > tr > td, + tfoot > tr > th, + tfoot > tr > td + `]:{position:"relative",padding:`${U(r)} ${U(o)}`,overflowWrap:"break-word"},[`${t}-title`]:{padding:`${U(r)} ${U(o)}`},[`${t}-thead`]:{"\n > tr > th,\n > tr > td\n ":{position:"relative",color:m,fontWeight:n,textAlign:"start",background:p,borderBottom:C,transition:`background ${v} ease`,"&[colspan]:not([colspan='1'])":{textAlign:"center"},[`&:not(:last-child):not(${t}-selection-column):not(${t}-row-expand-icon-cell):not([colspan])::before`]:{position:"absolute",top:"50%",insetInlineEnd:0,width:1,height:"1.6em",backgroundColor:b,transform:"translateY(-50%)",transition:`background-color ${v}`,content:'""'}},"> tr:not(:last-child) > th[colspan]":{borderBottom:0}},[`${t}-tbody`]:{"> tr":{"> th, > td":{transition:`background ${v}, border-color ${v}`,borderBottom:C,[` + > ${t}-wrapper:only-child, + > ${t}-expanded-row-fixed > ${t}-wrapper:only-child + `]:{[t]:{marginBlock:U(y(r).mul(-1).equal()),marginInline:`${U(y(a).sub(o).equal())} + ${U(y(o).mul(-1).equal())}`,[`${t}-tbody > tr:last-child > td`]:{borderBottomWidth:0,"&:first-child, &:last-child":{borderRadius:0}}}}},"> th":{position:"relative",color:m,fontWeight:n,textAlign:"start",background:p,borderBottom:C,transition:`background ${v} ease`}}},[`${t}-footer`]:{padding:`${U(r)} ${U(o)}`,color:h,background:g}})}},PU=e=>{const{colorFillAlter:t,colorBgContainer:n,colorTextHeading:r,colorFillSecondary:o,colorFillContent:a,controlItemBgActive:i,controlItemBgActiveHover:l,padding:c,paddingSM:u,paddingXS:d,colorBorderSecondary:f,borderRadiusLG:m,controlHeight:v,colorTextPlaceholder:p,fontSize:b,fontSizeSM:h,lineHeight:g,lineWidth:y,colorIcon:C,colorIconHover:x,opacityLoading:S,controlInteractiveSize:w}=e,E=new zt(o).onBackground(n).toHexString(),O=new zt(a).onBackground(n).toHexString(),$=new zt(t).onBackground(n).toHexString(),R=new zt(C),I=new zt(x),N=w/2-y,T=N*2+y*3;return{headerBg:$,headerColor:r,headerSortActiveBg:E,headerSortHoverBg:O,bodySortBg:$,rowHoverBg:$,rowSelectedBg:i,rowSelectedHoverBg:l,rowExpandedBg:t,cellPaddingBlock:c,cellPaddingInline:c,cellPaddingBlockMD:u,cellPaddingInlineMD:d,cellPaddingBlockSM:d,cellPaddingInlineSM:d,borderColor:f,headerBorderRadius:m,footerBg:$,footerColor:r,cellFontSize:b,cellFontSizeMD:b,cellFontSizeSM:b,headerSplitColor:f,fixedHeaderSortActiveBg:E,headerFilterHoverBg:a,filterDropdownMenuBg:n,filterDropdownBg:n,expandIconBg:n,selectionColumnWidth:v,stickyScrollBarBg:p,stickyScrollBarBorderRadius:100,expandIconMarginTop:(b*g-y*3)/2-Math.ceil((h*1.4-y*3)/2),headerIconColor:R.clone().setA(R.a*S).toRgbString(),headerIconHoverColor:I.clone().setA(I.a*S).toRgbString(),expandIconHalfInner:N,expandIconSize:T,expandIconScale:w/T}},R1=2,IU=Wt("Table",e=>{const{colorTextHeading:t,colorSplit:n,colorBgContainer:r,controlInteractiveSize:o,headerBg:a,headerColor:i,headerSortActiveBg:l,headerSortHoverBg:c,bodySortBg:u,rowHoverBg:d,rowSelectedBg:f,rowSelectedHoverBg:m,rowExpandedBg:v,cellPaddingBlock:p,cellPaddingInline:b,cellPaddingBlockMD:h,cellPaddingInlineMD:g,cellPaddingBlockSM:y,cellPaddingInlineSM:C,borderColor:x,footerBg:S,footerColor:w,headerBorderRadius:E,cellFontSize:O,cellFontSizeMD:$,cellFontSizeSM:R,headerSplitColor:I,fixedHeaderSortActiveBg:N,headerFilterHoverBg:T,filterDropdownBg:P,expandIconBg:M,selectionColumnWidth:_,stickyScrollBarBg:z,calc:j}=e,L=Rt(e,{tableFontSize:O,tableBg:r,tableRadius:E,tablePaddingVertical:p,tablePaddingHorizontal:b,tablePaddingVerticalMiddle:h,tablePaddingHorizontalMiddle:g,tablePaddingVerticalSmall:y,tablePaddingHorizontalSmall:C,tableBorderColor:x,tableHeaderTextColor:i,tableHeaderBg:a,tableFooterTextColor:w,tableFooterBg:S,tableHeaderCellSplitColor:I,tableHeaderSortBg:l,tableHeaderSortHoverBg:c,tableBodySortBg:u,tableFixedHeaderSortActiveBg:N,tableHeaderFilterActiveBg:T,tableFilterDropdownBg:P,tableRowHoverBg:d,tableSelectedRowBg:f,tableSelectedRowHoverBg:m,zIndexTableFixed:R1,zIndexTableSticky:j(R1).add(1).equal({unit:!1}),tableFontSizeMiddle:$,tableFontSizeSmall:R,tableSelectionColumnWidth:_,tableExpandIconBg:M,tableExpandColumnWidth:j(o).add(j(e.padding).mul(2)).equal(),tableExpandedRowBg:v,tableFilterDropdownWidth:120,tableFilterDropdownHeight:264,tableFilterDropdownSearchWidth:140,tableScrollThumbSize:8,tableScrollThumbBg:z,tableScrollThumbBgHover:t,tableScrollBg:n});return[RU(L),bU(L),O1(L),$U(L),hU(L),mU(L),CU(L),gU(L),O1(L),pU(L),xU(L),yU(L),EU(L),vU(L),wU(L),SU(L),OU(L)]},PU,{unitless:{expandIconScale:!0}}),NU=[],TU=(e,t)=>{var n,r;const{prefixCls:o,className:a,rootClassName:i,style:l,size:c,bordered:u,dropdownPrefixCls:d,dataSource:f,pagination:m,rowSelection:v,rowKey:p="key",rowClassName:b,columns:h,children:g,childrenColumnName:y,onChange:C,getPopupContainer:x,loading:S,expandIcon:w,expandable:E,expandedRowRender:O,expandIconColumnIndex:$,indentSize:R,scroll:I,sortDirections:N,locale:T,showSorterTooltip:P={target:"full-header"},virtual:M}=e;Si();const _=s.useMemo(()=>h||Ny(g),[h,g]),z=s.useMemo(()=>_.some(Ue=>Ue.responsive),[_]),j=ly(z),L=s.useMemo(()=>{const Ue=new Set(Object.keys(j).filter(Ve=>j[Ve]));return _.filter(Ve=>!Ve.responsive||Ve.responsive.some(tt=>Ue.has(tt)))},[_,j]),F=Zt(e,["className","style","columns"]),{locale:W=yo,direction:H,table:A,renderEmpty:V,getPrefixCls:K,getPopupContainer:Y}=s.useContext(lt),re=no(c),J=Object.assign(Object.assign({},W.Table),T),ae=f||NU,le=K("table",o),te=K("dropdown",d),[,q]=Kn(),X=mr(le),[Q,Z,ne]=IU(le,X),ie=Object.assign(Object.assign({childrenColumnName:y,expandIconColumnIndex:$},E),{expandIcon:(n=E==null?void 0:E.expandIcon)!==null&&n!==void 0?n:(r=A==null?void 0:A.expandable)===null||r===void 0?void 0:r.expandIcon}),{childrenColumnName:fe="children"}=ie,$e=s.useMemo(()=>ae.some(Ue=>Ue==null?void 0:Ue[fe])?"nest":O||E!=null&&E.expandedRowRender?"row":null,[ae]),Se={body:s.useRef(null)},oe=EK(le),se=s.useRef(null),ye=s.useRef(null);wK(t,()=>Object.assign(Object.assign({},ye.current),{nativeElement:se.current}));const ce=s.useMemo(()=>typeof p=="function"?p:Ue=>Ue==null?void 0:Ue[p],[p]),[we]=oU(ae,fe,ce),Oe={},Le=(Ue,Ve,tt=!1)=>{var dt,St,Et,Pt;const wt=Object.assign(Object.assign({},Oe),Ue);tt&&((dt=Oe.resetPagination)===null||dt===void 0||dt.call(Oe),!((St=wt.pagination)===null||St===void 0)&&St.current&&(wt.pagination.current=1),m&&((Et=m.onChange)===null||Et===void 0||Et.call(m,1,(Pt=wt.pagination)===null||Pt===void 0?void 0:Pt.pageSize))),I&&I.scrollToFirstRowOnChange!==!1&&Se.body.current&&J3(0,{getContainer:()=>Se.body.current}),C==null||C(wt.pagination,wt.filters,wt.sorter,{currentDataSource:ph(hh(ae,wt.sorterStates,fe),wt.filterStates,fe),action:Ve})},je=(Ue,Ve)=>{Le({sorter:Ue,sorterStates:Ve},"sort",!1)},[xe,Pe,Ce,ve]=cU({prefixCls:le,mergedColumns:L,onSorterChange:je,sortDirections:N||["ascend","descend"],tableLocale:J,showSorterTooltip:P}),Ee=s.useMemo(()=>hh(ae,Pe,fe),[ae,Pe]);Oe.sorter=ve(),Oe.sorterStates=Pe;const de=(Ue,Ve)=>{Le({filters:Ue,filterStates:Ve},"filter",!0)},[ge,me,ue]=rU({prefixCls:le,locale:J,dropdownPrefixCls:te,mergedColumns:L,onFilterChange:de,getPopupContainer:x||Y,rootClassName:G(i,X)}),Te=ph(Ee,me,fe);Oe.filters=ue,Oe.filterStates=me;const Qe=s.useMemo(()=>{const Ue={};return Object.keys(ue).forEach(Ve=>{ue[Ve]!==null&&(Ue[Ve]=ue[Ve])}),Object.assign(Object.assign({},Ce),{filters:Ue})},[Ce,ue]),[pt]=uU(Qe),gt=(Ue,Ve)=>{Le({pagination:Object.assign(Object.assign({},Oe.pagination),{current:Ue,pageSize:Ve})},"paginate")},[ft,Bt]=lU(Te.length,gt,m);Oe.pagination=m===!1?{}:iU(ft,m),Oe.resetPagination=Bt;const xt=s.useMemo(()=>{if(m===!1||!ft.pageSize)return Te;const{current:Ue=1,total:Ve,pageSize:tt=eI}=ft;return Te.lengthtt?Te.slice((Ue-1)*tt,Ue*tt):Te:Te.slice((Ue-1)*tt,Ue*tt)},[!!m,Te,ft==null?void 0:ft.current,ft==null?void 0:ft.pageSize,ft==null?void 0:ft.total]),[st,at]=SK({prefixCls:le,data:Te,pageData:xt,getRowKey:ce,getRecordByKey:we,expandType:$e,childrenColumnName:fe,locale:J,getPopupContainer:x||Y},v),Ke=(Ue,Ve,tt)=>{let dt;return typeof b=="function"?dt=G(b(Ue,Ve,tt)):dt=G(b),G({[`${le}-row-selected`]:at.has(ce(Ue,Ve))},dt)};ie.__PARENT_RENDER_ICON__=ie.expandIcon,ie.expandIcon=ie.expandIcon||w||$K(J),$e==="nest"&&ie.expandIconColumnIndex===void 0?ie.expandIconColumnIndex=v?1:0:ie.expandIconColumnIndex>0&&v&&(ie.expandIconColumnIndex-=1),typeof ie.indentSize!="number"&&(ie.indentSize=typeof R=="number"?R:15);const Fe=s.useCallback(Ue=>pt(st(ge(xe(Ue)))),[xe,ge,st]);let Re,qe;if(m!==!1&&(ft!=null&&ft.total)){let Ue;ft.size?Ue=ft.size:Ue=re==="small"||re==="middle"?"small":void 0;const Ve=St=>s.createElement(L7,Object.assign({},ft,{className:G(`${le}-pagination ${le}-pagination-${St}`,ft.className),size:Ue})),tt=H==="rtl"?"left":"right",{position:dt}=ft;if(dt!==null&&Array.isArray(dt)){const St=dt.find(wt=>wt.includes("top")),Et=dt.find(wt=>wt.includes("bottom")),Pt=dt.every(wt=>`${wt}`=="none");!St&&!Et&&!Pt&&(qe=Ve(tt)),St&&(Re=Ve(St.toLowerCase().replace("top",""))),Et&&(qe=Ve(Et.toLowerCase().replace("bottom","")))}else qe=Ve(tt)}let Je;typeof S=="boolean"?Je={spinning:S}:typeof S=="object"&&(Je=Object.assign({spinning:!0},S));const Ie=G(ne,X,`${le}-wrapper`,A==null?void 0:A.className,{[`${le}-wrapper-rtl`]:H==="rtl"},a,i,Z),Ne=Object.assign(Object.assign({},A==null?void 0:A.style),l),Xe=typeof(T==null?void 0:T.emptyText)<"u"?T.emptyText:(V==null?void 0:V("Table"))||s.createElement(JO,{componentName:"Table"}),Ge=M?fU:dU,He={},et=s.useMemo(()=>{const{fontSize:Ue,lineHeight:Ve,lineWidth:tt,padding:dt,paddingXS:St,paddingSM:Et}=q,Pt=Math.floor(Ue*Ve);switch(re){case"middle":return Et*2+Pt+tt;case"small":return St*2+Pt+tt;default:return dt*2+Pt+tt}},[q,re]);return M&&(He.listItemHeight=et),Q(s.createElement("div",{ref:se,className:Ie,style:Ne},s.createElement(Oy,Object.assign({spinning:!1},Je),Re,s.createElement(Ge,Object.assign({},He,F,{ref:ye,columns:L,direction:H,expandable:ie,prefixCls:le,className:G({[`${le}-middle`]:re==="middle",[`${le}-small`]:re==="small",[`${le}-bordered`]:u,[`${le}-empty`]:ae.length===0},ne,X,Z),data:xt,rowKey:ce,rowClassName:Ke,emptyText:Xe,internalHooks:Gc,internalRefs:Se,transformColumns:Fe,getContainerWidth:oe})),qe)))},MU=s.forwardRef(TU),_U=(e,t)=>{const n=s.useRef(0);return n.current+=1,s.createElement(MU,Object.assign({},e,{ref:t,_renderTimes:n.current}))},oa=s.forwardRef(_U);oa.SELECTION_COLUMN=ua;oa.EXPAND_COLUMN=Vo;oa.SELECTION_ALL=uh;oa.SELECTION_INVERT=dh;oa.SELECTION_NONE=fh;oa.Column=uK;oa.ColumnGroup=dK;oa.Summary=_P;const zU=e=>{const{paddingXXS:t,lineWidth:n,tagPaddingHorizontal:r,componentCls:o,calc:a}=e,i=a(r).sub(n).equal(),l=a(t).sub(n).equal();return{[o]:Object.assign(Object.assign({},Jt(e)),{display:"inline-block",height:"auto",marginInlineEnd:e.marginXS,paddingInline:i,fontSize:e.tagFontSize,lineHeight:e.tagLineHeight,whiteSpace:"nowrap",background:e.defaultBg,border:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,opacity:1,transition:`all ${e.motionDurationMid}`,textAlign:"start",position:"relative",[`&${o}-rtl`]:{direction:"rtl"},"&, a, a:hover":{color:e.defaultColor},[`${o}-close-icon`]:{marginInlineStart:l,fontSize:e.tagIconSize,color:e.colorIcon,cursor:"pointer",transition:`all ${e.motionDurationMid}`,"&:hover":{color:e.colorTextHeading}},[`&${o}-has-color`]:{borderColor:"transparent",[`&, a, a:hover, ${e.iconCls}-close, ${e.iconCls}-close:hover`]:{color:e.colorTextLightSolid}},"&-checkable":{backgroundColor:"transparent",borderColor:"transparent",cursor:"pointer",[`&:not(${o}-checkable-checked):hover`]:{color:e.colorPrimary,backgroundColor:e.colorFillSecondary},"&:active, &-checked":{color:e.colorTextLightSolid},"&-checked":{backgroundColor:e.colorPrimary,"&:hover":{backgroundColor:e.colorPrimaryHover}},"&:active":{backgroundColor:e.colorPrimaryActive}},"&-hidden":{display:"none"},[`> ${e.iconCls} + span, > span + ${e.iconCls}`]:{marginInlineStart:i}}),[`${o}-borderless`]:{borderColor:"transparent",background:e.tagBorderlessBg}}},Dy=e=>{const{lineWidth:t,fontSizeIcon:n,calc:r}=e,o=e.fontSizeSM;return Rt(e,{tagFontSize:o,tagLineHeight:U(r(e.lineHeightSM).mul(o).equal()),tagIconSize:r(n).sub(r(t).mul(2)).equal(),tagPaddingHorizontal:8,tagBorderlessBg:e.defaultBg})},By=e=>({defaultBg:new zt(e.colorFillQuaternary).onBackground(e.colorBgContainer).toHexString(),defaultColor:e.colorText}),rI=Wt("Tag",e=>{const t=Dy(e);return zU(t)},By);var jU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:n,style:r,className:o,checked:a,onChange:i,onClick:l}=e,c=jU(e,["prefixCls","style","className","checked","onChange","onClick"]),{getPrefixCls:u,tag:d}=s.useContext(lt),f=g=>{i==null||i(!a),l==null||l(g)},m=u("tag",n),[v,p,b]=rI(m),h=G(m,`${m}-checkable`,{[`${m}-checkable-checked`]:a},d==null?void 0:d.className,o,p,b);return v(s.createElement("span",Object.assign({},c,{ref:t,style:Object.assign(Object.assign({},r),d==null?void 0:d.style),className:h,onClick:f})))}),DU=e=>C2(e,(t,{textColor:n,lightBorderColor:r,lightColor:o,darkColor:a})=>({[`${e.componentCls}${e.componentCls}-${t}`]:{color:n,background:o,borderColor:r,"&-inverse":{color:e.colorTextLightSolid,background:a,borderColor:a},[`&${e.componentCls}-borderless`]:{borderColor:"transparent"}}})),BU=Tc(["Tag","preset"],e=>{const t=Dy(e);return DU(t)},By);function kU(e){return typeof e!="string"?e:e.charAt(0).toUpperCase()+e.slice(1)}const Ru=(e,t,n)=>{const r=kU(n);return{[`${e.componentCls}${e.componentCls}-${t}`]:{color:e[`color${n}`],background:e[`color${r}Bg`],borderColor:e[`color${r}Border`],[`&${e.componentCls}-borderless`]:{borderColor:"transparent"}}}},AU=Tc(["Tag","status"],e=>{const t=Dy(e);return[Ru(t,"success","Success"),Ru(t,"processing","Info"),Ru(t,"error","Error"),Ru(t,"warning","Warning")]},By);var FU=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:n,className:r,rootClassName:o,style:a,children:i,icon:l,color:c,onClose:u,bordered:d=!0,visible:f}=e,m=FU(e,["prefixCls","className","rootClassName","style","children","icon","color","onClose","bordered","visible"]),{getPrefixCls:v,direction:p,tag:b}=s.useContext(lt),[h,g]=s.useState(!0),y=Zt(m,["closeIcon","closable"]);s.useEffect(()=>{f!==void 0&&g(f)},[f]);const C=cR(c),x=eA(c),S=C||x,w=Object.assign(Object.assign({backgroundColor:c&&!S?c:void 0},b==null?void 0:b.style),a),E=v("tag",n),[O,$,R]=rI(E),I=G(E,b==null?void 0:b.className,{[`${E}-${c}`]:S,[`${E}-has-color`]:c&&!S,[`${E}-hidden`]:!h,[`${E}-rtl`]:p==="rtl",[`${E}-borderless`]:!d},r,o,$,R),N=j=>{j.stopPropagation(),u==null||u(j),!j.defaultPrevented&&g(!1)},[,T]=yO(Hd(e),Hd(b),{closable:!1,closeIconRender:j=>{const L=s.createElement("span",{className:`${E}-close-icon`,onClick:N},j);return H2(j,L,F=>({onClick:W=>{var H;(H=F==null?void 0:F.onClick)===null||H===void 0||H.call(F,W),N(W)},className:G(F==null?void 0:F.className,`${E}-close-icon`)}))}}),P=typeof m.onClick=="function"||i&&i.type==="a",M=l||null,_=M?s.createElement(s.Fragment,null,M,i&&s.createElement("span",null,i)):i,z=s.createElement("span",Object.assign({},y,{ref:t,className:I,style:w}),_,T,C&&s.createElement(BU,{key:"preset",prefixCls:E}),x&&s.createElement(AU,{key:"status",prefixCls:E}));return O(P?s.createElement(Hf,{component:"Tag"},z):z)}),oI=HU;oI.CheckableTag=LU;const VU=(e,t,n,r)=>{const{titleMarginBottom:o,fontWeightStrong:a}=r;return{marginBottom:o,color:n,fontWeight:a,fontSize:e,lineHeight:t}},WU=e=>{const t=[1,2,3,4,5],n={};return t.forEach(r=>{n[` + h${r}&, + div&-h${r}, + div&-h${r} > textarea, + h${r} + `]=VU(e[`fontSizeHeading${r}`],e[`lineHeightHeading${r}`],e.colorTextHeading,e)}),n},KU=e=>{const{componentCls:t}=e;return{"a&, a":Object.assign(Object.assign({},j0(e)),{userSelect:"text",[`&[disabled], &${t}-disabled`]:{color:e.colorTextDisabled,cursor:"not-allowed","&:active, &:hover":{color:e.colorTextDisabled},"&:active":{pointerEvents:"none"}}})}},UU=e=>({code:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.2em 0.1em",fontSize:"85%",fontFamily:e.fontFamilyCode,background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3},kbd:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.15em 0.1em",fontSize:"90%",fontFamily:e.fontFamilyCode,background:"rgba(150, 150, 150, 0.06)",border:"1px solid rgba(100, 100, 100, 0.2)",borderBottomWidth:2,borderRadius:3},mark:{padding:0,backgroundColor:zd[2]},"u, ins":{textDecoration:"underline",textDecorationSkipInk:"auto"},"s, del":{textDecoration:"line-through"},strong:{fontWeight:e.fontWeightStrong},"ul, ol":{marginInline:0,marginBlock:"0 1em",padding:0,li:{marginInline:"20px 0",marginBlock:0,paddingInline:"4px 0",paddingBlock:0}},ul:{listStyleType:"circle",ul:{listStyleType:"disc"}},ol:{listStyleType:"decimal"},"pre, blockquote":{margin:"1em 0"},pre:{padding:"0.4em 0.6em",whiteSpace:"pre-wrap",wordWrap:"break-word",background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3,fontFamily:e.fontFamilyCode,code:{display:"inline",margin:0,padding:0,fontSize:"inherit",fontFamily:"inherit",background:"transparent",border:0}},blockquote:{paddingInline:"0.6em 0",paddingBlock:0,borderInlineStart:"4px solid rgba(100, 100, 100, 0.2)",opacity:.85}}),GU=e=>{const{componentCls:t,paddingSM:n}=e,r=n;return{"&-edit-content":{position:"relative","div&":{insetInlineStart:e.calc(e.paddingSM).mul(-1).equal(),marginTop:e.calc(r).mul(-1).equal(),marginBottom:`calc(1em - ${U(r)})`},[`${t}-edit-content-confirm`]:{position:"absolute",insetInlineEnd:e.calc(e.marginXS).add(2).equal(),insetBlockEnd:e.marginXS,color:e.colorIcon,fontWeight:"normal",fontSize:e.fontSize,fontStyle:"normal",pointerEvents:"none"},textarea:{margin:"0!important",MozTransition:"none",height:"1em"}}}},qU=e=>({[`${e.componentCls}-copy-success`]:{"\n &,\n &:hover,\n &:focus":{color:e.colorSuccess}},[`${e.componentCls}-copy-icon-only`]:{marginInlineStart:0}}),XU=()=>({"\n a&-ellipsis,\n span&-ellipsis\n ":{display:"inline-block",maxWidth:"100%"},"&-ellipsis-single-line":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis","a&, span&":{verticalAlign:"bottom"},"> code":{paddingBlock:0,maxWidth:"calc(100% - 1.2em)",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis",verticalAlign:"bottom",boxSizing:"content-box"}},"&-ellipsis-multiple-line":{display:"-webkit-box",overflow:"hidden",WebkitLineClamp:3,WebkitBoxOrient:"vertical"}}),YU=e=>{const{componentCls:t,titleMarginTop:n}=e;return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorText,wordBreak:"break-word",lineHeight:e.lineHeight,[`&${t}-secondary`]:{color:e.colorTextDescription},[`&${t}-success`]:{color:e.colorSuccessText},[`&${t}-warning`]:{color:e.colorWarningText},[`&${t}-danger`]:{color:e.colorErrorText,"a&:active, a&:focus":{color:e.colorErrorTextActive},"a&:hover":{color:e.colorErrorTextHover}},[`&${t}-disabled`]:{color:e.colorTextDisabled,cursor:"not-allowed",userSelect:"none"},"\n div&,\n p\n ":{marginBottom:"1em"}},WU(e)),{[` + & + h1${t}, + & + h2${t}, + & + h3${t}, + & + h4${t}, + & + h5${t} + `]:{marginTop:n},"\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5":{"\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n ":{marginTop:n}}}),UU(e)),KU(e)),{[` + ${t}-expand, + ${t}-collapse, + ${t}-edit, + ${t}-copy + `]:Object.assign(Object.assign({},j0(e)),{marginInlineStart:e.marginXXS})}),GU(e)),qU(e)),XU()),{"&-rtl":{direction:"rtl"}})}},QU=()=>({titleMarginTop:"1.2em",titleMarginBottom:"0.5em"}),aI=Wt("Typography",e=>[YU(e)],QU),JU=e=>{const{prefixCls:t,"aria-label":n,className:r,style:o,direction:a,maxLength:i,autoSize:l=!0,value:c,onSave:u,onCancel:d,onEnd:f,component:m,enterIcon:v=s.createElement(vV,null)}=e,p=s.useRef(null),b=s.useRef(!1),h=s.useRef(null),[g,y]=s.useState(c);s.useEffect(()=>{y(c)},[c]),s.useEffect(()=>{var P;if(!((P=p.current)===null||P===void 0)&&P.resizableTextArea){const{textArea:M}=p.current.resizableTextArea;M.focus();const{length:_}=M.value;M.setSelectionRange(_,_)}},[]);const C=({target:P})=>{y(P.value.replace(/[\n\r]/g,""))},x=()=>{b.current=!0},S=()=>{b.current=!1},w=({keyCode:P})=>{b.current||(h.current=P)},E=()=>{u(g.trim())},O=({keyCode:P,ctrlKey:M,altKey:_,metaKey:z,shiftKey:j})=>{h.current!==P||b.current||M||_||z||j||(P===ke.ENTER?(E(),f==null||f()):P===ke.ESC&&d())},$=()=>{E()},[R,I,N]=aI(t),T=G(t,`${t}-edit-content`,{[`${t}-rtl`]:a==="rtl",[`${t}-${m}`]:!!m},r,I,N);return R(s.createElement("div",{className:T,style:o},s.createElement(gP,{ref:p,maxLength:i,value:g,onChange:C,onKeyDown:w,onKeyUp:O,onCompositionStart:x,onCompositionEnd:S,onBlur:$,"aria-label":n,rows:1,autoSize:l}),v!==null?nr(v,{className:`${t}-edit-content-confirm`}):null))};var ZU=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r"u"){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var f=P1[t.format]||P1.default;window.clipboardData.setData(f,e)}else d.clipboardData.clearData(),d.clipboardData.setData(t.format,e);t.onCopy&&(d.preventDefault(),t.onCopy(d.clipboardData))}),document.body.appendChild(l),a.selectNodeContents(l),i.addRange(a);var u=document.execCommand("copy");if(!u)throw new Error("copy command was unsuccessful");c=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),c=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),r=nG("message"in t?t.message:tG),window.prompt(r,e)}}finally{i&&(typeof i.removeRange=="function"?i.removeRange(a):i.removeAllRanges()),l&&document.body.removeChild(l),o()}return c}var oG=rG;const aG=nf(oG);var iG=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function l(d){try{u(r.next(d))}catch(f){i(f)}}function c(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(l,c)}u((r=r.apply(e,t||[])).next())})};const lG=({copyConfig:e,children:t})=>{const[n,r]=s.useState(!1),[o,a]=s.useState(!1),i=s.useRef(null),l=()=>{i.current&&clearTimeout(i.current)},c={};e.format&&(c.format=e.format),s.useEffect(()=>l,[]);const u=Vt(d=>iG(void 0,void 0,void 0,function*(){var f;d==null||d.preventDefault(),d==null||d.stopPropagation(),a(!0);try{const m=typeof e.text=="function"?yield e.text():e.text;aG(m||X7(t,!0).join("")||"",c),a(!1),r(!0),l(),i.current=setTimeout(()=>{r(!1)},3e3),(f=e.onCopy)===null||f===void 0||f.call(e,d)}catch(m){throw a(!1),m}}));return{copied:n,copyLoading:o,onClick:u}};function Kv(e,t){return s.useMemo(()=>{const n=!!e;return[n,Object.assign(Object.assign({},t),n&&typeof e=="object"?e:null)]},[e])}const sG=e=>{const t=s.useRef(void 0);return s.useEffect(()=>{t.current=e}),t.current},cG=(e,t,n)=>s.useMemo(()=>e===!0?{title:t??n}:s.isValidElement(e)?{title:e}:typeof e=="object"?Object.assign({title:t??n},e):{title:e},[e,t,n]);var uG=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{prefixCls:n,component:r="article",className:o,rootClassName:a,setContentRef:i,children:l,direction:c,style:u}=e,d=uG(e,["prefixCls","component","className","rootClassName","setContentRef","children","direction","style"]),{getPrefixCls:f,direction:m,className:v,style:p}=Rr("typography"),b=c??m,h=i?Or(t,i):t,g=f("typography",n),[y,C,x]=aI(g),S=G(g,v,{[`${g}-rtl`]:b==="rtl"},o,a,C,x),w=Object.assign(Object.assign({},p),u);return y(s.createElement(r,Object.assign({className:S,style:w,ref:h},d),l))});function I1(e){return e===!1?[!1,!1]:Array.isArray(e)?e:[e]}function Uv(e,t,n){return e===!0||e===void 0?t:e||n&&t}function dG(e){const t=document.createElement("em");e.appendChild(t);const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return e.removeChild(t),n.left>r.left||r.right>n.right||n.top>r.top||r.bottom>n.bottom}const ky=e=>["string","number"].includes(typeof e),fG=({prefixCls:e,copied:t,locale:n,iconOnly:r,tooltips:o,icon:a,tabIndex:i,onCopy:l,loading:c})=>{const u=I1(o),d=I1(a),{copied:f,copy:m}=n??{},v=t?f:m,p=Uv(u[t?1:0],v),b=typeof p=="string"?p:v;return s.createElement(xo,{title:p},s.createElement("button",{type:"button",className:G(`${e}-copy`,{[`${e}-copy-success`]:t,[`${e}-copy-icon-only`]:r}),onClick:l,"aria-label":b,tabIndex:i},t?Uv(d[1],s.createElement(oy,null),!0):Uv(d[0],c?s.createElement(vi,null):s.createElement(nV,null),!0)))},Pu=s.forwardRef(({style:e,children:t},n)=>{const r=s.useRef(null);return s.useImperativeHandle(n,()=>({isExceed:()=>{const o=r.current;return o.scrollHeight>o.clientHeight},getHeight:()=>r.current.clientHeight})),s.createElement("span",{"aria-hidden":!0,ref:r,style:Object.assign({position:"fixed",display:"block",left:0,top:0,pointerEvents:"none",backgroundColor:"rgba(255, 0, 0, 0.65)"},e)},t)}),mG=e=>e.reduce((t,n)=>t+(ky(n)?String(n).length:1),0);function N1(e,t){let n=0;const r=[];for(let o=0;ot){const u=t-n;return r.push(String(a).slice(0,u)),r}r.push(a),n=c}return e}const Gv=0,qv=1,Xv=2,Yv=3,T1=4,Iu={display:"-webkit-box",overflow:"hidden",WebkitBoxOrient:"vertical"};function vG(e){const{enableMeasure:t,width:n,text:r,children:o,rows:a,expanded:i,miscDeps:l,onEllipsis:c}=e,u=s.useMemo(()=>ur(r),[r]),d=s.useMemo(()=>mG(u),[r]),f=s.useMemo(()=>o(u,!1),[r]),[m,v]=s.useState(null),p=s.useRef(null),b=s.useRef(null),h=s.useRef(null),g=s.useRef(null),y=s.useRef(null),[C,x]=s.useState(!1),[S,w]=s.useState(Gv),[E,O]=s.useState(0),[$,R]=s.useState(null);Ot(()=>{w(t&&n&&d?qv:Gv)},[n,r,a,t,u]),Ot(()=>{var P,M,_,z;if(S===qv){w(Xv);const j=b.current&&getComputedStyle(b.current).whiteSpace;R(j)}else if(S===Xv){const j=!!(!((P=h.current)===null||P===void 0)&&P.isExceed());w(j?Yv:T1),v(j?[0,d]:null),x(j);const L=((M=h.current)===null||M===void 0?void 0:M.getHeight())||0,F=a===1?0:((_=g.current)===null||_===void 0?void 0:_.getHeight())||0,W=((z=y.current)===null||z===void 0?void 0:z.getHeight())||0,H=Math.max(L,F+W);O(H+1),c(j)}},[S]);const I=m?Math.ceil((m[0]+m[1])/2):0;Ot(()=>{var P;const[M,_]=m||[0,0];if(M!==_){const j=(((P=p.current)===null||P===void 0?void 0:P.getHeight())||0)>E;let L=I;_-M===1&&(L=j?M:_),v(j?[M,L]:[L,_])}},[m,I]);const N=s.useMemo(()=>{if(!t)return o(u,!1);if(S!==Yv||!m||m[0]!==m[1]){const P=o(u,!1);return[T1,Gv].includes(S)?P:s.createElement("span",{style:Object.assign(Object.assign({},Iu),{WebkitLineClamp:a})},P)}return o(i?u:N1(u,m[0]),C)},[i,S,m,u].concat(he(l))),T={width:n,margin:0,padding:0,whiteSpace:$==="nowrap"?"normal":"inherit"};return s.createElement(s.Fragment,null,N,S===Xv&&s.createElement(s.Fragment,null,s.createElement(Pu,{style:Object.assign(Object.assign(Object.assign({},T),Iu),{WebkitLineClamp:a}),ref:h},f),s.createElement(Pu,{style:Object.assign(Object.assign(Object.assign({},T),Iu),{WebkitLineClamp:a-1}),ref:g},f),s.createElement(Pu,{style:Object.assign(Object.assign(Object.assign({},T),Iu),{WebkitLineClamp:1}),ref:y},o([],!0))),S===Yv&&m&&m[0]!==m[1]&&s.createElement(Pu,{style:Object.assign(Object.assign({},T),{top:400}),ref:p},o(N1(u,I),!0)),S===qv&&s.createElement("span",{style:{whiteSpace:"inherit"},ref:b}))}const pG=({enableEllipsis:e,isEllipsis:t,children:n,tooltipProps:r})=>!(r!=null&&r.title)||!e?n:s.createElement(xo,Object.assign({open:t?void 0:!1},r),n);var gG=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var n;const{prefixCls:r,className:o,style:a,type:i,disabled:l,children:c,ellipsis:u,editable:d,copyable:f,component:m,title:v}=e,p=gG(e,["prefixCls","className","style","type","disabled","children","ellipsis","editable","copyable","component","title"]),{getPrefixCls:b,direction:h}=s.useContext(lt),[g]=$o("Text"),y=s.useRef(null),C=s.useRef(null),x=b("typography",r),S=Zt(p,M1),[w,E]=Kv(d),[O,$]=on(!1,{value:E.editing}),{triggerType:R=["icon"]}=E,I=me=>{var ue;me&&((ue=E.onStart)===null||ue===void 0||ue.call(E)),$(me)},N=sG(O);Ot(()=>{var me;!O&&N&&((me=C.current)===null||me===void 0||me.focus())},[O]);const T=me=>{me==null||me.preventDefault(),I(!0)},P=me=>{var ue;(ue=E.onChange)===null||ue===void 0||ue.call(E,me),I(!1)},M=()=>{var me;(me=E.onCancel)===null||me===void 0||me.call(E),I(!1)},[_,z]=Kv(f),{copied:j,copyLoading:L,onClick:F}=lG({copyConfig:z,children:c}),[W,H]=s.useState(!1),[A,V]=s.useState(!1),[K,Y]=s.useState(!1),[re,J]=s.useState(!1),[ae,le]=s.useState(!0),[te,q]=Kv(u,{expandable:!1,symbol:me=>me?g==null?void 0:g.collapse:g==null?void 0:g.expand}),[X,Q]=on(q.defaultExpanded||!1,{value:q.expanded}),Z=te&&(!X||q.expandable==="collapsible"),{rows:ne=1}=q,ie=s.useMemo(()=>Z&&(q.suffix!==void 0||q.onEllipsis||q.expandable||w||_),[Z,q,w,_]);Ot(()=>{te&&!ie&&(H(Ug("webkitLineClamp")),V(Ug("textOverflow")))},[ie,te]);const[fe,$e]=s.useState(Z),Se=s.useMemo(()=>ie?!1:ne===1?A:W,[ie,A,W]);Ot(()=>{$e(Se&&Z)},[Se,Z]);const oe=Z&&(fe?re:K),se=Z&&ne===1&&fe,ye=Z&&ne>1&&fe,ce=(me,ue)=>{var Te;Q(ue.expanded),(Te=q.onExpand)===null||Te===void 0||Te.call(q,me,ue)},[we,Oe]=s.useState(0),Le=({offsetWidth:me})=>{Oe(me)},je=me=>{var ue;Y(me),K!==me&&((ue=q.onEllipsis)===null||ue===void 0||ue.call(q,me))};s.useEffect(()=>{const me=y.current;if(te&&fe&&me){const ue=dG(me);re!==ue&&J(ue)}},[te,fe,c,ye,ae,we]),s.useEffect(()=>{const me=y.current;if(typeof IntersectionObserver>"u"||!me||!fe||!Z)return;const ue=new IntersectionObserver(()=>{le(!!me.offsetParent)});return ue.observe(me),()=>{ue.disconnect()}},[fe,Z]);const xe=cG(q.tooltip,E.text,c),Pe=s.useMemo(()=>{if(!(!te||fe))return[E.text,c,v,xe.title].find(ky)},[te,fe,v,xe.title,oe]);if(O)return s.createElement(JU,{value:(n=E.text)!==null&&n!==void 0?n:typeof c=="string"?c:"",onSave:P,onCancel:M,onEnd:E.onEnd,prefixCls:x,className:o,style:a,direction:h,component:m,maxLength:E.maxLength,autoSize:E.autoSize,enterIcon:E.enterIcon});const Ce=()=>{const{expandable:me,symbol:ue}=q;return me?s.createElement("button",{type:"button",key:"expand",className:`${x}-${X?"collapse":"expand"}`,onClick:Te=>ce(Te,{expanded:!X}),"aria-label":X?g.collapse:g==null?void 0:g.expand},typeof ue=="function"?ue(X):ue):null},ve=()=>{if(!w)return;const{icon:me,tooltip:ue,tabIndex:Te}=E,Qe=ur(ue)[0]||(g==null?void 0:g.edit),pt=typeof Qe=="string"?Qe:"";return R.includes("icon")?s.createElement(xo,{key:"edit",title:ue===!1?"":Qe},s.createElement("button",{type:"button",ref:C,className:`${x}-edit`,onClick:T,"aria-label":pt,tabIndex:Te},me||s.createElement(dV,{role:"button"}))):null},Ee=()=>_?s.createElement(fG,Object.assign({key:"copy"},z,{prefixCls:x,copied:j,locale:g,onCopy:F,loading:L,iconOnly:c==null})):null,de=me=>[me&&Ce(),ve(),Ee()],ge=me=>[me&&!X&&s.createElement("span",{"aria-hidden":!0,key:"ellipsis"},yG),q.suffix,de(me)];return s.createElement(cr,{onResize:Le,disabled:!Z},me=>s.createElement(pG,{tooltipProps:xe,enableEllipsis:Z,isEllipsis:oe},s.createElement(iI,Object.assign({className:G({[`${x}-${i}`]:i,[`${x}-disabled`]:l,[`${x}-ellipsis`]:te,[`${x}-ellipsis-single-line`]:se,[`${x}-ellipsis-multiple-line`]:ye},o),prefixCls:r,style:Object.assign(Object.assign({},a),{WebkitLineClamp:ye?ne:void 0}),component:m,ref:Or(me,y,t),direction:h,onClick:R.includes("text")?T:void 0,"aria-label":Pe==null?void 0:Pe.toString(),title:v},S),s.createElement(vG,{enableMeasure:Z&&!fe,text:c,rows:ne,width:we,onEllipsis:je,expanded:X,miscDeps:[j,X,L,w,_,g].concat(he(M1.map(ue=>e[ue])))},(ue,Te)=>hG(e,s.createElement(s.Fragment,null,ue.length>0&&Te&&!X&&Pe?s.createElement("span",{key:"show-content","aria-hidden":!0},ue):ue,ge(Te)))))))});var bG=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var{ellipsis:n,rel:r}=e,o=bG(e,["ellipsis","rel"]);const a=Object.assign(Object.assign({},o),{rel:r===void 0&&o.target==="_blank"?"noopener noreferrer":r});return delete a.navigate,s.createElement(ym,Object.assign({},a,{ref:t,ellipsis:!!n,component:"a"}))}),SG=s.forwardRef((e,t)=>s.createElement(ym,Object.assign({ref:t},e,{component:"div"})));var xG=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var{ellipsis:n}=e,r=xG(e,["ellipsis"]);const o=s.useMemo(()=>n&&typeof n=="object"?Zt(n,["expandable","rows"]):n,[n]);return s.createElement(ym,Object.assign({ref:t},r,{ellipsis:o,component:"span"}))},$G=s.forwardRef(wG);var EG=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{const{level:n=1}=e,r=EG(e,["level"]),o=OG.includes(n)?`h${n}`:"h1";return s.createElement(ym,Object.assign({ref:t},r,{component:o}))}),Ka=iI;Ka.Text=$G;Ka.Link=CG;Ka.Title=RG;Ka.Paragraph=SG;const Qv=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(","),r=e.name||"",o=e.type||"",a=o.replace(/\/.*$/,"");return n.some(function(i){var l=i.trim();if(/^\*(\/\*)?$/.test(i))return!0;if(l.charAt(0)==="."){var c=r.toLowerCase(),u=l.toLowerCase(),d=[u];return(u===".jpg"||u===".jpeg")&&(d=[".jpg",".jpeg"]),d.some(function(f){return c.endsWith(f)})}return/\/\*$/.test(l)?a===l.replace(/\/.*$/,""):o===l?!0:/^\w+$/.test(l)?(rn(!1,"Upload takes an invalidate 'accept' type '".concat(l,"'.Skip for check.")),!0):!1})}return!0};function PG(e,t){var n="cannot ".concat(e.method," ").concat(e.action," ").concat(t.status,"'"),r=new Error(n);return r.status=t.status,r.method=e.method,r.url=e.action,r}function _1(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}function IG(e){var t=new XMLHttpRequest;e.onProgress&&t.upload&&(t.upload.onprogress=function(a){a.total>0&&(a.percent=a.loaded/a.total*100),e.onProgress(a)});var n=new FormData;e.data&&Object.keys(e.data).forEach(function(o){var a=e.data[o];if(Array.isArray(a)){a.forEach(function(i){n.append("".concat(o,"[]"),i)});return}n.append(o,a)}),e.file instanceof Blob?n.append(e.filename,e.file,e.file.name):n.append(e.filename,e.file),t.onerror=function(a){e.onError(a)},t.onload=function(){return t.status<200||t.status>=300?e.onError(PG(e,t),_1(t)):e.onSuccess(_1(t),t)},t.open(e.method,e.action,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);var r=e.headers||{};return r["X-Requested-With"]!==null&&t.setRequestHeader("X-Requested-With","XMLHttpRequest"),Object.keys(r).forEach(function(o){r[o]!==null&&t.setRequestHeader(o,r[o])}),t.send(n),{abort:function(){t.abort()}}}var NG=function(){var e=lr(Ht().mark(function t(n,r){var o,a,i,l,c,u,d,f;return Ht().wrap(function(v){for(;;)switch(v.prev=v.next){case 0:u=function(){return u=lr(Ht().mark(function b(h){return Ht().wrap(function(y){for(;;)switch(y.prev=y.next){case 0:return y.abrupt("return",new Promise(function(C){h.file(function(x){r(x)?(h.fullPath&&!x.webkitRelativePath&&(Object.defineProperties(x,{webkitRelativePath:{writable:!0}}),x.webkitRelativePath=h.fullPath.replace(/^\//,""),Object.defineProperties(x,{webkitRelativePath:{writable:!1}})),C(x)):C(null)})}));case 1:case"end":return y.stop()}},b)})),u.apply(this,arguments)},c=function(b){return u.apply(this,arguments)},l=function(){return l=lr(Ht().mark(function b(h){var g,y,C,x,S;return Ht().wrap(function(E){for(;;)switch(E.prev=E.next){case 0:g=h.createReader(),y=[];case 2:return E.next=5,new Promise(function(O){g.readEntries(O,function(){return O([])})});case 5:if(C=E.sent,x=C.length,x){E.next=9;break}return E.abrupt("break",12);case 9:for(S=0;S0||b.some(function(x){return x.kind==="file"}))&&(d==null||d()),!p){C.next=11;break}return C.next=7,NG(Array.prototype.slice.call(b),function(x){return Qv(x,r.props.accept)});case 7:h=C.sent,r.uploadFiles(h),C.next=14;break;case 11:g=he(h).filter(function(x){return Qv(x,v)}),m===!1&&(g=h.slice(0,1)),r.uploadFiles(g);case 14:case"end":return C.stop()}},c)}));return function(c,u){return l.apply(this,arguments)}}()),D(Me(r),"onFilePaste",function(){var l=lr(Ht().mark(function c(u){var d,f;return Ht().wrap(function(v){for(;;)switch(v.prev=v.next){case 0:if(d=r.props.pastable,d){v.next=3;break}return v.abrupt("return");case 3:if(u.type!=="paste"){v.next=6;break}return f=u.clipboardData,v.abrupt("return",r.onDataTransferFiles(f,function(){u.preventDefault()}));case 6:case"end":return v.stop()}},c)}));return function(c){return l.apply(this,arguments)}}()),D(Me(r),"onFileDragOver",function(l){l.preventDefault()}),D(Me(r),"onFileDrop",function(){var l=lr(Ht().mark(function c(u){var d;return Ht().wrap(function(m){for(;;)switch(m.prev=m.next){case 0:if(u.preventDefault(),u.type!=="drop"){m.next=4;break}return d=u.dataTransfer,m.abrupt("return",r.onDataTransferFiles(d));case 4:case"end":return m.stop()}},c)}));return function(c){return l.apply(this,arguments)}}()),D(Me(r),"uploadFiles",function(l){var c=he(l),u=c.map(function(d){return d.uid=Jv(),r.processFile(d,c)});Promise.all(u).then(function(d){var f=r.props.onBatchStart;f==null||f(d.map(function(m){var v=m.origin,p=m.parsedFile;return{file:v,parsedFile:p}})),d.filter(function(m){return m.parsedFile!==null}).forEach(function(m){r.post(m)})})}),D(Me(r),"processFile",function(){var l=lr(Ht().mark(function c(u,d){var f,m,v,p,b,h,g,y,C;return Ht().wrap(function(S){for(;;)switch(S.prev=S.next){case 0:if(f=r.props.beforeUpload,m=u,!f){S.next=14;break}return S.prev=3,S.next=6,f(u,d);case 6:m=S.sent,S.next=12;break;case 9:S.prev=9,S.t0=S.catch(3),m=!1;case 12:if(m!==!1){S.next=14;break}return S.abrupt("return",{origin:u,parsedFile:null,action:null,data:null});case 14:if(v=r.props.action,typeof v!="function"){S.next=21;break}return S.next=18,v(u);case 18:p=S.sent,S.next=22;break;case 21:p=v;case 22:if(b=r.props.data,typeof b!="function"){S.next=29;break}return S.next=26,b(u);case 26:h=S.sent,S.next=30;break;case 29:h=b;case 30:return g=(We(m)==="object"||typeof m=="string")&&m?m:u,g instanceof File?y=g:y=new File([g],u.name,{type:u.type}),C=y,C.uid=u.uid,S.abrupt("return",{origin:u,data:h,parsedFile:C,action:p});case 35:case"end":return S.stop()}},c,null,[[3,9]])}));return function(c,u){return l.apply(this,arguments)}}()),D(Me(r),"saveFileInput",function(l){r.fileInput=l}),r}return vn(n,[{key:"componentDidMount",value:function(){this._isMounted=!0;var o=this.props.pastable;o&&document.addEventListener("paste",this.onFilePaste)}},{key:"componentWillUnmount",value:function(){this._isMounted=!1,this.abort(),document.removeEventListener("paste",this.onFilePaste)}},{key:"componentDidUpdate",value:function(o){var a=this.props.pastable;a&&!o.pastable?document.addEventListener("paste",this.onFilePaste):!a&&o.pastable&&document.removeEventListener("paste",this.onFilePaste)}},{key:"post",value:function(o){var a=this,i=o.data,l=o.origin,c=o.action,u=o.parsedFile;if(this._isMounted){var d=this.props,f=d.onStart,m=d.customRequest,v=d.name,p=d.headers,b=d.withCredentials,h=d.method,g=l.uid,y=m||IG,C={action:c,filename:v,data:i,file:u,headers:p,withCredentials:b,method:h||"post",onProgress:function(S){var w=a.props.onProgress;w==null||w(S,u)},onSuccess:function(S,w){var E=a.props.onSuccess;E==null||E(S,u,w),delete a.reqs[g]},onError:function(S,w){var E=a.props.onError;E==null||E(S,w,u),delete a.reqs[g]}};f(l),this.reqs[g]=y(C)}}},{key:"reset",value:function(){this.setState({uid:Jv()})}},{key:"abort",value:function(o){var a=this.reqs;if(o){var i=o.uid?o.uid:o;a[i]&&a[i].abort&&a[i].abort(),delete a[i]}else Object.keys(a).forEach(function(l){a[l]&&a[l].abort&&a[l].abort(),delete a[l]})}},{key:"render",value:function(){var o=this.props,a=o.component,i=o.prefixCls,l=o.className,c=o.classNames,u=c===void 0?{}:c,d=o.disabled,f=o.id,m=o.name,v=o.style,p=o.styles,b=p===void 0?{}:p,h=o.multiple,g=o.accept,y=o.capture,C=o.children,x=o.directory,S=o.openFileDialogOnClick,w=o.onMouseEnter,E=o.onMouseLeave,O=o.hasControlInside,$=ut(o,_G),R=G(D(D(D({},i,!0),"".concat(i,"-disabled"),d),l,l)),I=x?{directory:"directory",webkitdirectory:"webkitdirectory"}:{},N=d?{}:{onClick:S?this.onClick:function(){},onKeyDown:S?this.onKeyDown:function(){},onMouseEnter:w,onMouseLeave:E,onDrop:this.onFileDrop,onDragOver:this.onFileDragOver,tabIndex:O?void 0:"0"};return B.createElement(a,pe({},N,{className:R,role:O?void 0:"button",style:v}),B.createElement("input",pe({},tr($,{aria:!0,data:!0}),{id:f,name:m,disabled:d,type:"file",ref:this.saveFileInput,onClick:function(P){return P.stopPropagation()},key:this.state.uid,style:k({display:"none"},b.input),className:u.input,accept:g},I,{multiple:h,onChange:this.onChange},y!=null?{capture:y}:{})),C)}}]),n}(s.Component);function Zv(){}var yh=function(e){Zr(n,e);var t=eo(n);function n(){var r;mn(this,n);for(var o=arguments.length,a=new Array(o),i=0;i{const{componentCls:t,iconCls:n}=e;return{[`${t}-wrapper`]:{[`${t}-drag`]:{position:"relative",width:"100%",height:"100%",textAlign:"center",background:e.colorFillAlter,border:`${U(e.lineWidth)} dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:"pointer",transition:`border-color ${e.motionDurationSlow}`,[t]:{padding:e.padding},[`${t}-btn`]:{display:"table",width:"100%",height:"100%",outline:"none",borderRadius:e.borderRadiusLG,"&:focus-visible":{outline:`${U(e.lineWidthFocus)} solid ${e.colorPrimaryBorder}`}},[`${t}-drag-container`]:{display:"table-cell",verticalAlign:"middle"},[` + &:not(${t}-disabled):hover, + &-hover:not(${t}-disabled) + `]:{borderColor:e.colorPrimaryHover},[`p${t}-drag-icon`]:{marginBottom:e.margin,[n]:{color:e.colorPrimary,fontSize:e.uploadThumbnailSize}},[`p${t}-text`]:{margin:`0 0 ${U(e.marginXXS)}`,color:e.colorTextHeading,fontSize:e.fontSizeLG},[`p${t}-hint`]:{color:e.colorTextDescription,fontSize:e.fontSize},[`&${t}-disabled`]:{[`p${t}-drag-icon ${n}, + p${t}-text, + p${t}-hint + `]:{color:e.colorTextDisabled}}}}}},LG=e=>{const{componentCls:t,iconCls:n,fontSize:r,lineHeight:o,calc:a}=e,i=`${t}-list-item`,l=`${i}-actions`,c=`${i}-action`;return{[`${t}-wrapper`]:{[`${t}-list`]:Object.assign(Object.assign({},Co()),{lineHeight:e.lineHeight,[i]:{position:"relative",height:a(e.lineHeight).mul(r).equal(),marginTop:e.marginXS,fontSize:r,display:"flex",alignItems:"center",transition:`background-color ${e.motionDurationSlow}`,borderRadius:e.borderRadiusSM,"&:hover":{backgroundColor:e.controlItemBgHover},[`${i}-name`]:Object.assign(Object.assign({},Bo),{padding:`0 ${U(e.paddingXS)}`,lineHeight:o,flex:"auto",transition:`all ${e.motionDurationSlow}`}),[l]:{whiteSpace:"nowrap",[c]:{opacity:0},[n]:{color:e.actionsColor,transition:`all ${e.motionDurationSlow}`},[` + ${c}:focus-visible, + &.picture ${c} + `]:{opacity:1}},[`${t}-icon ${n}`]:{color:e.colorIcon,fontSize:r},[`${i}-progress`]:{position:"absolute",bottom:e.calc(e.uploadProgressOffset).mul(-1).equal(),width:"100%",paddingInlineStart:a(r).add(e.paddingXS).equal(),fontSize:r,lineHeight:0,pointerEvents:"none","> div":{margin:0}}},[`${i}:hover ${c}`]:{opacity:1},[`${i}-error`]:{color:e.colorError,[`${i}-name, ${t}-icon ${n}`]:{color:e.colorError},[l]:{[`${n}, ${n}:hover`]:{color:e.colorError},[c]:{opacity:1}}},[`${t}-list-item-container`]:{transition:`opacity ${e.motionDurationSlow}, height ${e.motionDurationSlow}`,"&::before":{display:"table",width:0,height:0,content:'""'}}})}}},DG=e=>{const{componentCls:t}=e,n=new Nt("uploadAnimateInlineIn",{from:{width:0,height:0,padding:0,opacity:0,margin:e.calc(e.marginXS).div(-2).equal()}}),r=new Nt("uploadAnimateInlineOut",{to:{width:0,height:0,padding:0,opacity:0,margin:e.calc(e.marginXS).div(-2).equal()}}),o=`${t}-animate-inline`;return[{[`${t}-wrapper`]:{[`${o}-appear, ${o}-enter, ${o}-leave`]:{animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseInOutCirc,animationFillMode:"forwards"},[`${o}-appear, ${o}-enter`]:{animationName:n},[`${o}-leave`]:{animationName:r}}},{[`${t}-wrapper`]:tO(e)},n,r]},BG=e=>{const{componentCls:t,iconCls:n,uploadThumbnailSize:r,uploadProgressOffset:o,calc:a}=e,i=`${t}-list`,l=`${i}-item`;return{[`${t}-wrapper`]:{[` + ${i}${i}-picture, + ${i}${i}-picture-card, + ${i}${i}-picture-circle + `]:{[l]:{position:"relative",height:a(r).add(a(e.lineWidth).mul(2)).add(a(e.paddingXS).mul(2)).equal(),padding:e.paddingXS,border:`${U(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusLG,"&:hover":{background:"transparent"},[`${l}-thumbnail`]:Object.assign(Object.assign({},Bo),{width:r,height:r,lineHeight:U(a(r).add(e.paddingSM).equal()),textAlign:"center",flex:"none",[n]:{fontSize:e.fontSizeHeading2,color:e.colorPrimary},img:{display:"block",width:"100%",height:"100%",overflow:"hidden"}}),[`${l}-progress`]:{bottom:o,width:`calc(100% - ${U(a(e.paddingSM).mul(2).equal())})`,marginTop:0,paddingInlineStart:a(r).add(e.paddingXS).equal()}},[`${l}-error`]:{borderColor:e.colorError,[`${l}-thumbnail ${n}`]:{[`svg path[fill='${wl[0]}']`]:{fill:e.colorErrorBg},[`svg path[fill='${wl.primary}']`]:{fill:e.colorError}}},[`${l}-uploading`]:{borderStyle:"dashed",[`${l}-name`]:{marginBottom:o}}},[`${i}${i}-picture-circle ${l}`]:{[`&, &::before, ${l}-thumbnail`]:{borderRadius:"50%"}}}}},kG=e=>{const{componentCls:t,iconCls:n,fontSizeLG:r,colorTextLightSolid:o,calc:a}=e,i=`${t}-list`,l=`${i}-item`,c=e.uploadPicCardSize;return{[` + ${t}-wrapper${t}-picture-card-wrapper, + ${t}-wrapper${t}-picture-circle-wrapper + `]:Object.assign(Object.assign({},Co()),{display:"block",[`${t}${t}-select`]:{width:c,height:c,textAlign:"center",verticalAlign:"top",backgroundColor:e.colorFillAlter,border:`${U(e.lineWidth)} dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:"pointer",transition:`border-color ${e.motionDurationSlow}`,[`> ${t}`]:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"},[`&:not(${t}-disabled):hover`]:{borderColor:e.colorPrimary}},[`${i}${i}-picture-card, ${i}${i}-picture-circle`]:{display:"flex",flexWrap:"wrap","@supports not (gap: 1px)":{"& > *":{marginBlockEnd:e.marginXS,marginInlineEnd:e.marginXS}},"@supports (gap: 1px)":{gap:e.marginXS},[`${i}-item-container`]:{display:"inline-block",width:c,height:c,verticalAlign:"top"},"&::after":{display:"none"},"&::before":{display:"none"},[l]:{height:"100%",margin:0,"&::before":{position:"absolute",zIndex:1,width:`calc(100% - ${U(a(e.paddingXS).mul(2).equal())})`,height:`calc(100% - ${U(a(e.paddingXS).mul(2).equal())})`,backgroundColor:e.colorBgMask,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'" "'}},[`${l}:hover`]:{[`&::before, ${l}-actions`]:{opacity:1}},[`${l}-actions`]:{position:"absolute",insetInlineStart:0,zIndex:10,width:"100%",whiteSpace:"nowrap",textAlign:"center",opacity:0,transition:`all ${e.motionDurationSlow}`,[` + ${n}-eye, + ${n}-download, + ${n}-delete + `]:{zIndex:10,width:r,margin:`0 ${U(e.marginXXS)}`,fontSize:r,cursor:"pointer",transition:`all ${e.motionDurationSlow}`,color:o,"&:hover":{color:o},svg:{verticalAlign:"baseline"}}},[`${l}-thumbnail, ${l}-thumbnail img`]:{position:"static",display:"block",width:"100%",height:"100%",objectFit:"contain"},[`${l}-name`]:{display:"none",textAlign:"center"},[`${l}-file + ${l}-name`]:{position:"absolute",bottom:e.margin,display:"block",width:`calc(100% - ${U(a(e.paddingXS).mul(2).equal())})`},[`${l}-uploading`]:{[`&${l}`]:{backgroundColor:e.colorFillAlter},[`&::before, ${n}-eye, ${n}-download, ${n}-delete`]:{display:"none"}},[`${l}-progress`]:{bottom:e.marginXL,width:`calc(100% - ${U(a(e.paddingXS).mul(2).equal())})`,paddingInlineStart:0}}}),[`${t}-wrapper${t}-picture-circle-wrapper`]:{[`${t}${t}-select`]:{borderRadius:"50%"}}}},AG=e=>{const{componentCls:t}=e;return{[`${t}-rtl`]:{direction:"rtl"}}},FG=e=>{const{componentCls:t,colorTextDisabled:n}=e;return{[`${t}-wrapper`]:Object.assign(Object.assign({},Jt(e)),{[t]:{outline:0,"input[type='file']":{cursor:"pointer"}},[`${t}-select`]:{display:"inline-block"},[`${t}-hidden`]:{display:"none"},[`${t}-disabled`]:{color:n,cursor:"not-allowed"}})}},HG=e=>({actionsColor:e.colorIcon}),VG=Wt("Upload",e=>{const{fontSizeHeading3:t,fontHeight:n,lineWidth:r,controlHeightLG:o,calc:a}=e,i=Rt(e,{uploadThumbnailSize:a(t).mul(2).equal(),uploadProgressOffset:a(a(n).div(2)).add(r).equal(),uploadPicCardSize:a(o).mul(2.55).equal()});return[FG(i),jG(i),BG(i),kG(i),LG(i),DG(i),AG(i),V0(i)]},HG);function Nu(e){return Object.assign(Object.assign({},e),{lastModified:e.lastModified,lastModifiedDate:e.lastModifiedDate,name:e.name,size:e.size,type:e.type,uid:e.uid,percent:0,originFileObj:e})}function Tu(e,t){const n=he(t),r=n.findIndex(({uid:o})=>o===e.uid);return r===-1?n.push(e):n[r]=e,n}function ep(e,t){const n=e.uid!==void 0?"uid":"name";return t.filter(r=>r[n]===e[n])[0]}function WG(e,t){const n=e.uid!==void 0?"uid":"name",r=t.filter(o=>o[n]!==e[n]);return r.length===t.length?null:r}const KG=(e="")=>{const t=e.split("/"),r=t[t.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(r)||[""])[0]},lI=e=>e.indexOf("image/")===0,UG=e=>{if(e.type&&!e.thumbUrl)return lI(e.type);const t=e.thumbUrl||e.url||"",n=KG(t);return/^data:image\//.test(t)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(n)?!0:!(/^data:/.test(t)||n)},la=200;function GG(e){return new Promise(t=>{if(!e.type||!lI(e.type)){t("");return}const n=document.createElement("canvas");n.width=la,n.height=la,n.style.cssText=`position: fixed; left: 0; top: 0; width: ${la}px; height: ${la}px; z-index: 9999; display: none;`,document.body.appendChild(n);const r=n.getContext("2d"),o=new Image;if(o.onload=()=>{const{width:a,height:i}=o;let l=la,c=la,u=0,d=0;a>i?(c=i*(la/a),d=-(c-l)/2):(l=a*(la/i),u=-(l-c)/2),r.drawImage(o,u,d,l,c);const f=n.toDataURL();document.body.removeChild(n),window.URL.revokeObjectURL(o.src),t(f)},o.crossOrigin="anonymous",e.type.startsWith("image/svg+xml")){const a=new FileReader;a.onload=()=>{a.result&&typeof a.result=="string"&&(o.src=a.result)},a.readAsDataURL(e)}else if(e.type.startsWith("image/gif")){const a=new FileReader;a.onload=()=>{a.result&&t(a.result)},a.readAsDataURL(e)}else o.src=window.URL.createObjectURL(e)})}const qG=s.forwardRef(({prefixCls:e,className:t,style:n,locale:r,listType:o,file:a,items:i,progress:l,iconRender:c,actionIconRender:u,itemRender:d,isImgUrl:f,showPreviewIcon:m,showRemoveIcon:v,showDownloadIcon:p,previewIcon:b,removeIcon:h,downloadIcon:g,extra:y,onPreview:C,onDownload:x,onClose:S},w)=>{var E,O;const{status:$}=a,[R,I]=s.useState($);s.useEffect(()=>{$!=="removed"&&I($)},[$]);const[N,T]=s.useState(!1);s.useEffect(()=>{const q=setTimeout(()=>{T(!0)},300);return()=>{clearTimeout(q)}},[]);const P=c(a);let M=s.createElement("div",{className:`${e}-icon`},P);if(o==="picture"||o==="picture-card"||o==="picture-circle")if(R==="uploading"||!a.thumbUrl&&!a.url){const q=G(`${e}-list-item-thumbnail`,{[`${e}-list-item-file`]:R!=="uploading"});M=s.createElement("div",{className:q},P)}else{const q=f!=null&&f(a)?s.createElement("img",{src:a.thumbUrl||a.url,alt:a.name,className:`${e}-list-item-image`,crossOrigin:a.crossOrigin}):P,X=G(`${e}-list-item-thumbnail`,{[`${e}-list-item-file`]:f&&!f(a)});M=s.createElement("a",{className:X,onClick:Q=>C(a,Q),href:a.url||a.thumbUrl,target:"_blank",rel:"noopener noreferrer"},q)}const _=G(`${e}-list-item`,`${e}-list-item-${R}`),z=typeof a.linkProps=="string"?JSON.parse(a.linkProps):a.linkProps,j=(typeof v=="function"?v(a):v)?u((typeof h=="function"?h(a):h)||s.createElement(aV,null),()=>S(a),e,r.removeFile,!0):null,L=(typeof p=="function"?p(a):p)&&R==="done"?u((typeof g=="function"?g(a):g)||s.createElement(sV,null),()=>x(a),e,r.downloadFile):null,F=o!=="picture-card"&&o!=="picture-circle"&&s.createElement("span",{key:"download-delete",className:G(`${e}-list-item-actions`,{picture:o==="picture"})},L,j),W=typeof y=="function"?y(a):y,H=W&&s.createElement("span",{className:`${e}-list-item-extra`},W),A=G(`${e}-list-item-name`),V=a.url?s.createElement("a",Object.assign({key:"view",target:"_blank",rel:"noopener noreferrer",className:A,title:a.name},z,{href:a.url,onClick:q=>C(a,q)}),a.name,H):s.createElement("span",{key:"view",className:A,onClick:q=>C(a,q),title:a.name},a.name,H),K=(typeof m=="function"?m(a):m)&&(a.url||a.thumbUrl)?s.createElement("a",{href:a.url||a.thumbUrl,target:"_blank",rel:"noopener noreferrer",onClick:q=>C(a,q),title:r.previewFile},typeof b=="function"?b(a):b||s.createElement(pP,null)):null,Y=(o==="picture-card"||o==="picture-circle")&&R!=="uploading"&&s.createElement("span",{className:`${e}-list-item-actions`},K,R==="done"&&L,j),{getPrefixCls:re}=s.useContext(lt),J=re(),ae=s.createElement("div",{className:_},M,V,F,Y,N&&s.createElement(to,{motionName:`${J}-fade`,visible:R==="uploading",motionDeadline:2e3},({className:q})=>{const X="percent"in a?s.createElement(PP,Object.assign({type:"line",percent:a.percent,"aria-label":a["aria-label"],"aria-labelledby":a["aria-labelledby"]},l)):null;return s.createElement("div",{className:G(`${e}-list-item-progress`,q)},X)})),le=a.response&&typeof a.response=="string"?a.response:((E=a.error)===null||E===void 0?void 0:E.statusText)||((O=a.error)===null||O===void 0?void 0:O.message)||r.uploadError,te=R==="error"?s.createElement(xo,{title:le,getPopupContainer:q=>q.parentNode},ae):ae;return s.createElement("div",{className:G(`${e}-list-item-container`,t),style:n,ref:w},d?d(te,a,i,{download:x.bind(null,a),preview:C.bind(null,a),remove:S.bind(null,a)}):te)}),XG=(e,t)=>{const{listType:n="text",previewFile:r=GG,onPreview:o,onDownload:a,onRemove:i,locale:l,iconRender:c,isImageUrl:u=UG,prefixCls:d,items:f=[],showPreviewIcon:m=!0,showRemoveIcon:v=!0,showDownloadIcon:p=!1,removeIcon:b,previewIcon:h,downloadIcon:g,extra:y,progress:C={size:[-1,2],showInfo:!1},appendAction:x,appendActionVisible:S=!0,itemRender:w,disabled:E}=e,O=iy(),[$,R]=s.useState(!1),I=["picture-card","picture-circle"].includes(n);s.useEffect(()=>{n.startsWith("picture")&&(f||[]).forEach(A=>{!(A.originFileObj instanceof File||A.originFileObj instanceof Blob)||A.thumbUrl!==void 0||(A.thumbUrl="",r==null||r(A.originFileObj).then(V=>{A.thumbUrl=V||"",O()}))})},[n,f,r]),s.useEffect(()=>{R(!0)},[]);const N=(A,V)=>{if(o)return V==null||V.preventDefault(),o(A)},T=A=>{typeof a=="function"?a(A):A.url&&window.open(A.url)},P=A=>{i==null||i(A)},M=A=>{if(c)return c(A,n);const V=A.status==="uploading";if(n.startsWith("picture")){const K=n==="picture"?s.createElement(vi,null):l.uploading,Y=u!=null&&u(A)?s.createElement(UV,null):s.createElement(bV,null);return V?K:Y}return V?s.createElement(vi,null):s.createElement(VV,null)},_=(A,V,K,Y,re)=>{const J={type:"text",size:"small",title:Y,onClick:ae=>{var le,te;V(),s.isValidElement(A)&&((te=(le=A.props).onClick)===null||te===void 0||te.call(le,ae))},className:`${K}-list-item-action`,disabled:re?E:!1};return s.isValidElement(A)?s.createElement(rr,Object.assign({},J,{icon:nr(A,Object.assign(Object.assign({},A.props),{onClick:()=>{}}))})):s.createElement(rr,Object.assign({},J),s.createElement("span",null,A))};s.useImperativeHandle(t,()=>({handlePreview:N,handleDownload:T}));const{getPrefixCls:z}=s.useContext(lt),j=z("upload",d),L=z(),F=G(`${j}-list`,`${j}-list-${n}`),W=s.useMemo(()=>Zt(F0(L),["onAppearEnd","onEnterEnd","onLeaveEnd"]),[L]),H=Object.assign(Object.assign({},I?{}:W),{motionDeadline:2e3,motionName:`${j}-${I?"animate-inline":"animate"}`,keys:he(f.map(A=>({key:A.uid,file:A}))),motionAppear:$});return s.createElement("div",{className:F},s.createElement(T2,Object.assign({},H,{component:!1}),({key:A,file:V,className:K,style:Y})=>s.createElement(qG,{key:A,locale:l,prefixCls:j,className:K,style:Y,file:V,items:f,progress:C,listType:n,isImgUrl:u,showPreviewIcon:m,showRemoveIcon:v,showDownloadIcon:p,removeIcon:b,previewIcon:h,downloadIcon:g,extra:y,iconRender:M,actionIconRender:_,itemRender:w,onPreview:N,onDownload:T,onClose:P})),x&&s.createElement(to,Object.assign({},H,{visible:S,forceRender:!0}),({className:A,style:V})=>nr(x,K=>({className:G(K.className,A),style:Object.assign(Object.assign(Object.assign({},V),{pointerEvents:A?"none":void 0}),K.style)}))))},YG=s.forwardRef(XG);var QG=function(e,t,n,r){function o(a){return a instanceof n?a:new n(function(i){i(a)})}return new(n||(n=Promise))(function(a,i){function l(d){try{u(r.next(d))}catch(f){i(f)}}function c(d){try{u(r.throw(d))}catch(f){i(f)}}function u(d){d.done?a(d.value):o(d.value).then(l,c)}u((r=r.apply(e,[])).next())})};const hs=`__LIST_IGNORE_${Date.now()}__`,JG=(e,t)=>{const{fileList:n,defaultFileList:r,onRemove:o,showUploadList:a=!0,listType:i="text",onPreview:l,onDownload:c,onChange:u,onDrop:d,previewFile:f,disabled:m,locale:v,iconRender:p,isImageUrl:b,progress:h,prefixCls:g,className:y,type:C="select",children:x,style:S,itemRender:w,maxCount:E,data:O={},multiple:$=!1,hasControlInside:R=!0,action:I="",accept:N="",supportServerRender:T=!0,rootClassName:P}=e,M=s.useContext(bo),_=m??M,[z,j]=on(r||[],{value:n,postState:de=>de??[]}),[L,F]=s.useState("drop"),W=s.useRef(null),H=s.useRef(null);s.useMemo(()=>{const de=Date.now();(n||[]).forEach((ge,me)=>{!ge.uid&&!Object.isFrozen(ge)&&(ge.uid=`__AUTO__${de}_${me}__`)})},[n]);const A=(de,ge,me)=>{let ue=he(ge),Te=!1;E===1?ue=ue.slice(-1):E&&(Te=ue.length>E,ue=ue.slice(0,E)),Yr.flushSync(()=>{j(ue)});const Qe={file:de,fileList:ue};me&&(Qe.event=me),(!Te||de.status==="removed"||ue.some(pt=>pt.uid===de.uid))&&Yr.flushSync(()=>{u==null||u(Qe)})},V=(de,ge)=>QG(void 0,void 0,void 0,function*(){const{beforeUpload:me,transformFile:ue}=e;let Te=de;if(me){const Qe=yield me(de,ge);if(Qe===!1)return!1;if(delete de[hs],Qe===hs)return Object.defineProperty(de,hs,{value:!0,configurable:!0}),!1;typeof Qe=="object"&&Qe&&(Te=Qe)}return ue&&(Te=yield ue(Te)),Te}),K=de=>{const ge=de.filter(Te=>!Te.file[hs]);if(!ge.length)return;const me=ge.map(Te=>Nu(Te.file));let ue=he(z);me.forEach(Te=>{ue=Tu(Te,ue)}),me.forEach((Te,Qe)=>{let pt=Te;if(ge[Qe].parsedFile)Te.status="uploading";else{const{originFileObj:gt}=Te;let ft;try{ft=new File([gt],gt.name,{type:gt.type})}catch{ft=new Blob([gt],{type:gt.type}),ft.name=gt.name,ft.lastModifiedDate=new Date,ft.lastModified=new Date().getTime()}ft.uid=Te.uid,pt=ft}A(pt,ue)})},Y=(de,ge,me)=>{try{typeof de=="string"&&(de=JSON.parse(de))}catch{}if(!ep(ge,z))return;const ue=Nu(ge);ue.status="done",ue.percent=100,ue.response=de,ue.xhr=me;const Te=Tu(ue,z);A(ue,Te)},re=(de,ge)=>{if(!ep(ge,z))return;const me=Nu(ge);me.status="uploading",me.percent=de.percent;const ue=Tu(me,z);A(me,ue,de)},J=(de,ge,me)=>{if(!ep(me,z))return;const ue=Nu(me);ue.error=de,ue.response=ge,ue.status="error";const Te=Tu(ue,z);A(ue,Te)},ae=de=>{let ge;Promise.resolve(typeof o=="function"?o(de):o).then(me=>{var ue;if(me===!1)return;const Te=WG(de,z);Te&&(ge=Object.assign(Object.assign({},de),{status:"removed"}),z==null||z.forEach(Qe=>{const pt=ge.uid!==void 0?"uid":"name";Qe[pt]===ge[pt]&&!Object.isFrozen(Qe)&&(Qe.status="removed")}),(ue=W.current)===null||ue===void 0||ue.abort(ge),A(ge,Te))})},le=de=>{F(de.type),de.type==="drop"&&(d==null||d(de))};s.useImperativeHandle(t,()=>({onBatchStart:K,onSuccess:Y,onProgress:re,onError:J,fileList:z,upload:W.current,nativeElement:H.current}));const{getPrefixCls:te,direction:q,upload:X}=s.useContext(lt),Q=te("upload",g),Z=Object.assign(Object.assign({onBatchStart:K,onError:J,onProgress:re,onSuccess:Y},e),{data:O,multiple:$,action:I,accept:N,supportServerRender:T,prefixCls:Q,disabled:_,beforeUpload:V,onChange:void 0,hasControlInside:R});delete Z.className,delete Z.style,(!x||_)&&delete Z.id;const ne=`${Q}-wrapper`,[ie,fe,$e]=VG(Q,ne),[Se]=$o("Upload",yo.Upload),{showRemoveIcon:oe,showPreviewIcon:se,showDownloadIcon:ye,removeIcon:ce,previewIcon:we,downloadIcon:Oe,extra:Le}=typeof a=="boolean"?{}:a,je=typeof oe>"u"?!_:oe,xe=(de,ge)=>a?s.createElement(YG,{prefixCls:Q,listType:i,items:z,previewFile:f,onPreview:l,onDownload:c,onRemove:ae,showRemoveIcon:je,showPreviewIcon:se,showDownloadIcon:ye,removeIcon:ce,previewIcon:we,downloadIcon:Oe,iconRender:p,extra:Le,locale:Object.assign(Object.assign({},Se),v),isImageUrl:b,progress:h,appendAction:de,appendActionVisible:ge,itemRender:w,disabled:_}):de,Pe=G(ne,y,P,fe,$e,X==null?void 0:X.className,{[`${Q}-rtl`]:q==="rtl",[`${Q}-picture-card-wrapper`]:i==="picture-card",[`${Q}-picture-circle-wrapper`]:i==="picture-circle"}),Ce=Object.assign(Object.assign({},X==null?void 0:X.style),S);if(C==="drag"){const de=G(fe,Q,`${Q}-drag`,{[`${Q}-drag-uploading`]:z.some(ge=>ge.status==="uploading"),[`${Q}-drag-hover`]:L==="dragover",[`${Q}-disabled`]:_,[`${Q}-rtl`]:q==="rtl"});return ie(s.createElement("span",{className:Pe,ref:H},s.createElement("div",{className:de,style:Ce,onDrop:le,onDragOver:le,onDragLeave:le},s.createElement(yh,Object.assign({},Z,{ref:W,className:`${Q}-btn`}),s.createElement("div",{className:`${Q}-drag-container`},x))),xe()))}const ve=G(Q,`${Q}-select`,{[`${Q}-disabled`]:_,[`${Q}-hidden`]:!x}),Ee=s.createElement("div",{className:ve,style:Ce},s.createElement(yh,Object.assign({},Z,{ref:W})));return ie(i==="picture-card"||i==="picture-circle"?s.createElement("span",{className:Pe,ref:H},xe(Ee,!!x)):s.createElement("span",{className:Pe,ref:H},Ee,xe()))},sI=s.forwardRef(JG);var ZG=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o{var{style:n,height:r,hasControlInside:o=!1}=e,a=ZG(e,["style","height","hasControlInside"]);return s.createElement(sI,Object.assign({ref:t,hasControlInside:o},a,{type:"drag",style:Object.assign(Object.assign({},n),{height:r})}))}),bc=sI;bc.Dragger=eq;bc.LIST_IGNORE=hs;function cI(e,t){return function(){return e.apply(t,arguments)}}const{toString:tq}=Object.prototype,{getPrototypeOf:Ay}=Object,{iterator:bm,toStringTag:uI}=Symbol,Cm=(e=>t=>{const n=tq.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Oo=e=>(e=e.toLowerCase(),t=>Cm(t)===e),Sm=e=>t=>typeof t===e,{isArray:Vl}=Array,Cc=Sm("undefined");function nq(e){return e!==null&&!Cc(e)&&e.constructor!==null&&!Cc(e.constructor)&&$r(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const dI=Oo("ArrayBuffer");function rq(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&dI(e.buffer),t}const oq=Sm("string"),$r=Sm("function"),fI=Sm("number"),xm=e=>e!==null&&typeof e=="object",aq=e=>e===!0||e===!1,od=e=>{if(Cm(e)!=="object")return!1;const t=Ay(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(uI in e)&&!(bm in e)},iq=Oo("Date"),lq=Oo("File"),sq=Oo("Blob"),cq=Oo("FileList"),uq=e=>xm(e)&&$r(e.pipe),dq=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||$r(e.append)&&((t=Cm(e))==="formdata"||t==="object"&&$r(e.toString)&&e.toString()==="[object FormData]"))},fq=Oo("URLSearchParams"),[mq,vq,pq,gq]=["ReadableStream","Request","Response","Headers"].map(Oo),hq=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qc(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,o;if(typeof e!="object"&&(e=[e]),Vl(e))for(r=0,o=e.length;r0;)if(o=n[r],t===o.toLowerCase())return o;return null}const ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,vI=e=>!Cc(e)&&e!==ri;function bh(){const{caseless:e}=vI(this)&&this||{},t={},n=(r,o)=>{const a=e&&mI(t,o)||o;od(t[a])&&od(r)?t[a]=bh(t[a],r):od(r)?t[a]=bh({},r):Vl(r)?t[a]=r.slice():t[a]=r};for(let r=0,o=arguments.length;r(qc(t,(o,a)=>{n&&$r(o)?e[a]=cI(o,n):e[a]=o},{allOwnKeys:r}),e),bq=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Cq=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Sq=(e,t,n,r)=>{let o,a,i;const l={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)i=o[a],(!r||r(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Ay(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},xq=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},wq=e=>{if(!e)return null;if(Vl(e))return e;let t=e.length;if(!fI(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},$q=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ay(Uint8Array)),Eq=(e,t)=>{const r=(e&&e[bm]).call(e);let o;for(;(o=r.next())&&!o.done;){const a=o.value;t.call(e,a[0],a[1])}},Oq=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Rq=Oo("HTMLFormElement"),Pq=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,o){return r.toUpperCase()+o}),z1=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Iq=Oo("RegExp"),pI=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};qc(n,(o,a)=>{let i;(i=t(o,a,e))!==!1&&(r[a]=i||o)}),Object.defineProperties(e,r)},Nq=e=>{pI(e,(t,n)=>{if($r(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if($r(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Tq=(e,t)=>{const n={},r=o=>{o.forEach(a=>{n[a]=!0})};return Vl(e)?r(e):r(String(e).split(t)),n},Mq=()=>{},_q=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function zq(e){return!!(e&&$r(e.append)&&e[uI]==="FormData"&&e[bm])}const jq=e=>{const t=new Array(10),n=(r,o)=>{if(xm(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[o]=r;const a=Vl(r)?[]:{};return qc(r,(i,l)=>{const c=n(i,o+1);!Cc(c)&&(a[l]=c)}),t[o]=void 0,a}}return r};return n(e,0)},Lq=Oo("AsyncFunction"),Dq=e=>e&&(xm(e)||$r(e))&&$r(e.then)&&$r(e.catch),gI=((e,t)=>e?setImmediate:t?((n,r)=>(ri.addEventListener("message",({source:o,data:a})=>{o===ri&&a===n&&r.length&&r.shift()()},!1),o=>{r.push(o),ri.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",$r(ri.postMessage)),Bq=typeof queueMicrotask<"u"?queueMicrotask.bind(ri):typeof process<"u"&&process.nextTick||gI,kq=e=>e!=null&&$r(e[bm]),be={isArray:Vl,isArrayBuffer:dI,isBuffer:nq,isFormData:dq,isArrayBufferView:rq,isString:oq,isNumber:fI,isBoolean:aq,isObject:xm,isPlainObject:od,isReadableStream:mq,isRequest:vq,isResponse:pq,isHeaders:gq,isUndefined:Cc,isDate:iq,isFile:lq,isBlob:sq,isRegExp:Iq,isFunction:$r,isStream:uq,isURLSearchParams:fq,isTypedArray:$q,isFileList:cq,forEach:qc,merge:bh,extend:yq,trim:hq,stripBOM:bq,inherits:Cq,toFlatObject:Sq,kindOf:Cm,kindOfTest:Oo,endsWith:xq,toArray:wq,forEachEntry:Eq,matchAll:Oq,isHTMLForm:Rq,hasOwnProperty:z1,hasOwnProp:z1,reduceDescriptors:pI,freezeMethods:Nq,toObjectSet:Tq,toCamelCase:Pq,noop:Mq,toFiniteNumber:_q,findKey:mI,global:ri,isContextDefined:vI,isSpecCompliantForm:zq,toJSONObject:jq,isAsyncFn:Lq,isThenable:Dq,setImmediate:gI,asap:Bq,isIterable:kq};function $t(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}be.inherits($t,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:be.toJSONObject(this.config),code:this.code,status:this.status}}});const hI=$t.prototype,yI={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{yI[e]={value:e}});Object.defineProperties($t,yI);Object.defineProperty(hI,"isAxiosError",{value:!0});$t.from=(e,t,n,r,o,a)=>{const i=Object.create(hI);return be.toFlatObject(e,i,function(c){return c!==Error.prototype},l=>l!=="isAxiosError"),$t.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,a&&Object.assign(i,a),i};const Aq=null;function Ch(e){return be.isPlainObject(e)||be.isArray(e)}function bI(e){return be.endsWith(e,"[]")?e.slice(0,-2):e}function j1(e,t,n){return e?e.concat(t).map(function(o,a){return o=bI(o),!n&&a?"["+o+"]":o}).join(n?".":""):t}function Fq(e){return be.isArray(e)&&!e.some(Ch)}const Hq=be.toFlatObject(be,{},null,function(t){return/^is[A-Z]/.test(t)});function wm(e,t,n){if(!be.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=be.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,h){return!be.isUndefined(h[b])});const r=n.metaTokens,o=n.visitor||d,a=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&be.isSpecCompliantForm(t);if(!be.isFunction(o))throw new TypeError("visitor must be a function");function u(p){if(p===null)return"";if(be.isDate(p))return p.toISOString();if(be.isBoolean(p))return p.toString();if(!c&&be.isBlob(p))throw new $t("Blob is not supported. Use a Buffer instead.");return be.isArrayBuffer(p)||be.isTypedArray(p)?c&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function d(p,b,h){let g=p;if(p&&!h&&typeof p=="object"){if(be.endsWith(b,"{}"))b=r?b:b.slice(0,-2),p=JSON.stringify(p);else if(be.isArray(p)&&Fq(p)||(be.isFileList(p)||be.endsWith(b,"[]"))&&(g=be.toArray(p)))return b=bI(b),g.forEach(function(C,x){!(be.isUndefined(C)||C===null)&&t.append(i===!0?j1([b],x,a):i===null?b:b+"[]",u(C))}),!1}return Ch(p)?!0:(t.append(j1(h,b,a),u(p)),!1)}const f=[],m=Object.assign(Hq,{defaultVisitor:d,convertValue:u,isVisitable:Ch});function v(p,b){if(!be.isUndefined(p)){if(f.indexOf(p)!==-1)throw Error("Circular reference detected in "+b.join("."));f.push(p),be.forEach(p,function(g,y){(!(be.isUndefined(g)||g===null)&&o.call(t,g,be.isString(y)?y.trim():y,b,m))===!0&&v(g,b?b.concat(y):[y])}),f.pop()}}if(!be.isObject(e))throw new TypeError("data must be an object");return v(e),t}function L1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Fy(e,t){this._pairs=[],e&&wm(e,this,t)}const CI=Fy.prototype;CI.append=function(t,n){this._pairs.push([t,n])};CI.toString=function(t){const n=t?function(r){return t.call(this,r,L1)}:L1;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function Vq(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function SI(e,t,n){if(!t)return e;const r=n&&n.encode||Vq;be.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let a;if(o?a=o(t,n):a=be.isURLSearchParams(t)?t.toString():new Fy(t,n).toString(r),a){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}class D1{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){be.forEach(this.handlers,function(r){r!==null&&t(r)})}}const xI={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Wq=typeof URLSearchParams<"u"?URLSearchParams:Fy,Kq=typeof FormData<"u"?FormData:null,Uq=typeof Blob<"u"?Blob:null,Gq={isBrowser:!0,classes:{URLSearchParams:Wq,FormData:Kq,Blob:Uq},protocols:["http","https","file","blob","url","data"]},Hy=typeof window<"u"&&typeof document<"u",Sh=typeof navigator=="object"&&navigator||void 0,qq=Hy&&(!Sh||["ReactNative","NativeScript","NS"].indexOf(Sh.product)<0),Xq=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Yq=Hy&&window.location.href||"http://localhost",Qq=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Hy,hasStandardBrowserEnv:qq,hasStandardBrowserWebWorkerEnv:Xq,navigator:Sh,origin:Yq},Symbol.toStringTag,{value:"Module"})),Zn={...Qq,...Gq};function Jq(e,t){return wm(e,new Zn.classes.URLSearchParams,Object.assign({visitor:function(n,r,o,a){return Zn.isNode&&be.isBuffer(n)?(this.append(r,n.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function Zq(e){return be.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function eX(e){const t={},n=Object.keys(e);let r;const o=n.length;let a;for(r=0;r=n.length;return i=!i&&be.isArray(o)?o.length:i,c?(be.hasOwnProp(o,i)?o[i]=[o[i],r]:o[i]=r,!l):((!o[i]||!be.isObject(o[i]))&&(o[i]=[]),t(n,r,o[i],a)&&be.isArray(o[i])&&(o[i]=eX(o[i])),!l)}if(be.isFormData(e)&&be.isFunction(e.entries)){const n={};return be.forEachEntry(e,(r,o)=>{t(Zq(r),o,n,0)}),n}return null}function tX(e,t,n){if(be.isString(e))try{return(t||JSON.parse)(e),be.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Xc={transitional:xI,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",o=r.indexOf("application/json")>-1,a=be.isObject(t);if(a&&be.isHTMLForm(t)&&(t=new FormData(t)),be.isFormData(t))return o?JSON.stringify(wI(t)):t;if(be.isArrayBuffer(t)||be.isBuffer(t)||be.isStream(t)||be.isFile(t)||be.isBlob(t)||be.isReadableStream(t))return t;if(be.isArrayBufferView(t))return t.buffer;if(be.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(a){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Jq(t,this.formSerializer).toString();if((l=be.isFileList(t))||r.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return wm(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return a||o?(n.setContentType("application/json",!1),tX(t)):t}],transformResponse:[function(t){const n=this.transitional||Xc.transitional,r=n&&n.forcedJSONParsing,o=this.responseType==="json";if(be.isResponse(t)||be.isReadableStream(t))return t;if(t&&be.isString(t)&&(r&&!this.responseType||o)){const i=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(l){if(i)throw l.name==="SyntaxError"?$t.from(l,$t.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Zn.classes.FormData,Blob:Zn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};be.forEach(["delete","get","head","post","put","patch"],e=>{Xc.headers[e]={}});const nX=be.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),rX=e=>{const t={};let n,r,o;return e&&e.split(` +`).forEach(function(i){o=i.indexOf(":"),n=i.substring(0,o).trim().toLowerCase(),r=i.substring(o+1).trim(),!(!n||t[n]&&nX[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},B1=Symbol("internals");function ls(e){return e&&String(e).trim().toLowerCase()}function ad(e){return e===!1||e==null?e:be.isArray(e)?e.map(ad):String(e)}function oX(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const aX=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function tp(e,t,n,r,o){if(be.isFunction(r))return r.call(this,t,n);if(o&&(t=n),!!be.isString(t)){if(be.isString(r))return t.indexOf(r)!==-1;if(be.isRegExp(r))return r.test(t)}}function iX(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function lX(e,t){const n=be.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(o,a,i){return this[r].call(this,t,o,a,i)},configurable:!0})})}let Er=class{constructor(t){t&&this.set(t)}set(t,n,r){const o=this;function a(l,c,u){const d=ls(c);if(!d)throw new Error("header name must be a non-empty string");const f=be.findKey(o,d);(!f||o[f]===void 0||u===!0||u===void 0&&o[f]!==!1)&&(o[f||c]=ad(l))}const i=(l,c)=>be.forEach(l,(u,d)=>a(u,d,c));if(be.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(be.isString(t)&&(t=t.trim())&&!aX(t))i(rX(t),n);else if(be.isObject(t)&&be.isIterable(t)){let l={},c,u;for(const d of t){if(!be.isArray(d))throw TypeError("Object iterator must return a key-value pair");l[u=d[0]]=(c=l[u])?be.isArray(c)?[...c,d[1]]:[c,d[1]]:d[1]}i(l,n)}else t!=null&&a(n,t,r);return this}get(t,n){if(t=ls(t),t){const r=be.findKey(this,t);if(r){const o=this[r];if(!n)return o;if(n===!0)return oX(o);if(be.isFunction(n))return n.call(this,o,r);if(be.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ls(t),t){const r=be.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||tp(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let o=!1;function a(i){if(i=ls(i),i){const l=be.findKey(r,i);l&&(!n||tp(r,r[l],l,n))&&(delete r[l],o=!0)}}return be.isArray(t)?t.forEach(a):a(t),o}clear(t){const n=Object.keys(this);let r=n.length,o=!1;for(;r--;){const a=n[r];(!t||tp(this,this[a],a,t,!0))&&(delete this[a],o=!0)}return o}normalize(t){const n=this,r={};return be.forEach(this,(o,a)=>{const i=be.findKey(r,a);if(i){n[i]=ad(o),delete n[a];return}const l=t?iX(a):String(a).trim();l!==a&&delete n[a],n[l]=ad(o),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return be.forEach(this,(r,o)=>{r!=null&&r!==!1&&(n[o]=t&&be.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[B1]=this[B1]={accessors:{}}).accessors,o=this.prototype;function a(i){const l=ls(i);r[l]||(lX(o,i),r[l]=!0)}return be.isArray(t)?t.forEach(a):a(t),this}};Er.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);be.reduceDescriptors(Er.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});be.freezeMethods(Er);function np(e,t){const n=this||Xc,r=t||n,o=Er.from(r.headers);let a=r.data;return be.forEach(e,function(l){a=l.call(n,a,o.normalize(),t?t.status:void 0)}),o.normalize(),a}function $I(e){return!!(e&&e.__CANCEL__)}function Wl(e,t,n){$t.call(this,e??"canceled",$t.ERR_CANCELED,t,n),this.name="CanceledError"}be.inherits(Wl,$t,{__CANCEL__:!0});function EI(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new $t("Request failed with status code "+n.status,[$t.ERR_BAD_REQUEST,$t.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function sX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function cX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,a=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[a];i||(i=u),n[o]=c,r[o]=u;let f=a,m=0;for(;f!==o;)m+=n[f++],f=f%e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),u-i{n=d,o=null,a&&(clearTimeout(a),a=null),e.apply(null,u)};return[(...u)=>{const d=Date.now(),f=d-n;f>=r?i(u,d):(o=u,a||(a=setTimeout(()=>{a=null,i(o)},r-f)))},()=>o&&i(o)]}const ef=(e,t,n=3)=>{let r=0;const o=cX(50,250);return uX(a=>{const i=a.loaded,l=a.lengthComputable?a.total:void 0,c=i-r,u=o(c),d=i<=l;r=i;const f={loaded:i,total:l,progress:l?i/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&d?(l-i)/u:void 0,event:a,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},k1=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},A1=e=>(...t)=>be.asap(()=>e(...t)),dX=Zn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Zn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Zn.origin),Zn.navigator&&/(msie|trident)/i.test(Zn.navigator.userAgent)):()=>!0,fX=Zn.hasStandardBrowserEnv?{write(e,t,n,r,o,a){const i=[e+"="+encodeURIComponent(t)];be.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),be.isString(r)&&i.push("path="+r),be.isString(o)&&i.push("domain="+o),a===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function mX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function vX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function OI(e,t,n){let r=!mX(t);return e&&(r||n==!1)?vX(e,t):t}const F1=e=>e instanceof Er?{...e}:e;function gi(e,t){t=t||{};const n={};function r(u,d,f,m){return be.isPlainObject(u)&&be.isPlainObject(d)?be.merge.call({caseless:m},u,d):be.isPlainObject(d)?be.merge({},d):be.isArray(d)?d.slice():d}function o(u,d,f,m){if(be.isUndefined(d)){if(!be.isUndefined(u))return r(void 0,u,f,m)}else return r(u,d,f,m)}function a(u,d){if(!be.isUndefined(d))return r(void 0,d)}function i(u,d){if(be.isUndefined(d)){if(!be.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function l(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const c={url:a,method:a,data:a,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:l,headers:(u,d,f)=>o(F1(u),F1(d),f,!0)};return be.forEach(Object.keys(Object.assign({},e,t)),function(d){const f=c[d]||o,m=f(e[d],t[d],d);be.isUndefined(m)&&f!==l||(n[d]=m)}),n}const RI=e=>{const t=gi({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:a,headers:i,auth:l}=t;t.headers=i=Er.from(i),t.url=SI(OI(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):"")));let c;if(be.isFormData(n)){if(Zn.hasStandardBrowserEnv||Zn.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((c=i.getContentType())!==!1){const[u,...d]=c?c.split(";").map(f=>f.trim()).filter(Boolean):[];i.setContentType([u||"multipart/form-data",...d].join("; "))}}if(Zn.hasStandardBrowserEnv&&(r&&be.isFunction(r)&&(r=r(t)),r||r!==!1&&dX(t.url))){const u=o&&a&&fX.read(a);u&&i.set(o,u)}return t},pX=typeof XMLHttpRequest<"u",gX=pX&&function(e){return new Promise(function(n,r){const o=RI(e);let a=o.data;const i=Er.from(o.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=o,d,f,m,v,p;function b(){v&&v(),p&&p(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let h=new XMLHttpRequest;h.open(o.method.toUpperCase(),o.url,!0),h.timeout=o.timeout;function g(){if(!h)return;const C=Er.from("getAllResponseHeaders"in h&&h.getAllResponseHeaders()),S={data:!l||l==="text"||l==="json"?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:C,config:e,request:h};EI(function(E){n(E),b()},function(E){r(E),b()},S),h=null}"onloadend"in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.indexOf("file:")===0)||setTimeout(g)},h.onabort=function(){h&&(r(new $t("Request aborted",$t.ECONNABORTED,e,h)),h=null)},h.onerror=function(){r(new $t("Network Error",$t.ERR_NETWORK,e,h)),h=null},h.ontimeout=function(){let x=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const S=o.transitional||xI;o.timeoutErrorMessage&&(x=o.timeoutErrorMessage),r(new $t(x,S.clarifyTimeoutError?$t.ETIMEDOUT:$t.ECONNABORTED,e,h)),h=null},a===void 0&&i.setContentType(null),"setRequestHeader"in h&&be.forEach(i.toJSON(),function(x,S){h.setRequestHeader(S,x)}),be.isUndefined(o.withCredentials)||(h.withCredentials=!!o.withCredentials),l&&l!=="json"&&(h.responseType=o.responseType),u&&([m,p]=ef(u,!0),h.addEventListener("progress",m)),c&&h.upload&&([f,v]=ef(c),h.upload.addEventListener("progress",f),h.upload.addEventListener("loadend",v)),(o.cancelToken||o.signal)&&(d=C=>{h&&(r(!C||C.type?new Wl(null,e,h):C),h.abort(),h=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));const y=sX(o.url);if(y&&Zn.protocols.indexOf(y)===-1){r(new $t("Unsupported protocol "+y+":",$t.ERR_BAD_REQUEST,e));return}h.send(a||null)})},hX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const a=function(u){if(!o){o=!0,l();const d=u instanceof Error?u:this.reason;r.abort(d instanceof $t?d:new Wl(d instanceof Error?d.message:d))}};let i=t&&setTimeout(()=>{i=null,a(new $t(`timeout ${t} of ms exceeded`,$t.ETIMEDOUT))},t);const l=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(a):u.removeEventListener("abort",a)}),e=null)};e.forEach(u=>u.addEventListener("abort",a));const{signal:c}=r;return c.unsubscribe=()=>be.asap(l),c}},yX=function*(e,t){let n=e.byteLength;if(n{const o=bX(e,t);let a=0,i,l=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await o.next();if(u){l(),c.close();return}let f=d.byteLength;if(n){let m=a+=f;n(m)}c.enqueue(new Uint8Array(d))}catch(u){throw l(u),u}},cancel(c){return l(c),o.return()}},{highWaterMark:2})},$m=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",PI=$m&&typeof ReadableStream=="function",SX=$m&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),II=(e,...t)=>{try{return!!e(...t)}catch{return!1}},xX=PI&&II(()=>{let e=!1;const t=new Request(Zn.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),V1=64*1024,xh=PI&&II(()=>be.isReadableStream(new Response("").body)),tf={stream:xh&&(e=>e.body)};$m&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!tf[t]&&(tf[t]=be.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new $t(`Response type '${t}' is not supported`,$t.ERR_NOT_SUPPORT,r)})})})(new Response);const wX=async e=>{if(e==null)return 0;if(be.isBlob(e))return e.size;if(be.isSpecCompliantForm(e))return(await new Request(Zn.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(be.isArrayBufferView(e)||be.isArrayBuffer(e))return e.byteLength;if(be.isURLSearchParams(e)&&(e=e+""),be.isString(e))return(await SX(e)).byteLength},$X=async(e,t)=>{const n=be.toFiniteNumber(e.getContentLength());return n??wX(t)},EX=$m&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:a,timeout:i,onDownloadProgress:l,onUploadProgress:c,responseType:u,headers:d,withCredentials:f="same-origin",fetchOptions:m}=RI(e);u=u?(u+"").toLowerCase():"text";let v=hX([o,a&&a.toAbortSignal()],i),p;const b=v&&v.unsubscribe&&(()=>{v.unsubscribe()});let h;try{if(c&&xX&&n!=="get"&&n!=="head"&&(h=await $X(d,r))!==0){let S=new Request(t,{method:"POST",body:r,duplex:"half"}),w;if(be.isFormData(r)&&(w=S.headers.get("content-type"))&&d.setContentType(w),S.body){const[E,O]=k1(h,ef(A1(c)));r=H1(S.body,V1,E,O)}}be.isString(f)||(f=f?"include":"omit");const g="credentials"in Request.prototype;p=new Request(t,{...m,signal:v,method:n.toUpperCase(),headers:d.normalize().toJSON(),body:r,duplex:"half",credentials:g?f:void 0});let y=await fetch(p,m);const C=xh&&(u==="stream"||u==="response");if(xh&&(l||C&&b)){const S={};["status","statusText","headers"].forEach($=>{S[$]=y[$]});const w=be.toFiniteNumber(y.headers.get("content-length")),[E,O]=l&&k1(w,ef(A1(l),!0))||[];y=new Response(H1(y.body,V1,E,()=>{O&&O(),b&&b()}),S)}u=u||"text";let x=await tf[be.findKey(tf,u)||"text"](y,e);return!C&&b&&b(),await new Promise((S,w)=>{EI(S,w,{data:x,headers:Er.from(y.headers),status:y.status,statusText:y.statusText,config:e,request:p})})}catch(g){throw b&&b(),g&&g.name==="TypeError"&&/Load failed|fetch/i.test(g.message)?Object.assign(new $t("Network Error",$t.ERR_NETWORK,e,p),{cause:g.cause||g}):$t.from(g,g&&g.code,e,p)}}),wh={http:Aq,xhr:gX,fetch:EX};be.forEach(wh,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const W1=e=>`- ${e}`,OX=e=>be.isFunction(e)||e===null||e===!1,NI={getAdapter:e=>{e=be.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let a=0;a`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let i=t?a.length>1?`since : +`+a.map(W1).join(` +`):" "+W1(a[0]):"as no adapter specified";throw new $t("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:wh};function rp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Wl(null,e)}function K1(e){return rp(e),e.headers=Er.from(e.headers),e.data=np.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),NI.getAdapter(e.adapter||Xc.adapter)(e).then(function(r){return rp(e),r.data=np.call(e,e.transformResponse,r),r.headers=Er.from(r.headers),r},function(r){return $I(r)||(rp(e),r&&r.response&&(r.response.data=np.call(e,e.transformResponse,r.response),r.response.headers=Er.from(r.response.headers))),Promise.reject(r)})}const TI="1.10.0",Em={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Em[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const U1={};Em.transitional=function(t,n,r){function o(a,i){return"[Axios v"+TI+"] Transitional option '"+a+"'"+i+(r?". "+r:"")}return(a,i,l)=>{if(t===!1)throw new $t(o(i," has been removed"+(n?" in "+n:"")),$t.ERR_DEPRECATED);return n&&!U1[i]&&(U1[i]=!0,console.warn(o(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(a,i,l):!0}};Em.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function RX(e,t,n){if(typeof e!="object")throw new $t("options must be an object",$t.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const a=r[o],i=t[a];if(i){const l=e[a],c=l===void 0||i(l,a,e);if(c!==!0)throw new $t("option "+a+" must be "+c,$t.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new $t("Unknown option "+a,$t.ERR_BAD_OPTION)}}const id={assertOptions:RX,validators:Em},Po=id.validators;let si=class{constructor(t){this.defaults=t||{},this.interceptors={request:new D1,response:new D1}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const a=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?a&&!String(r.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+a):r.stack=a}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=gi(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:a}=n;r!==void 0&&id.assertOptions(r,{silentJSONParsing:Po.transitional(Po.boolean),forcedJSONParsing:Po.transitional(Po.boolean),clarifyTimeoutError:Po.transitional(Po.boolean)},!1),o!=null&&(be.isFunction(o)?n.paramsSerializer={serialize:o}:id.assertOptions(o,{encode:Po.function,serialize:Po.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),id.assertOptions(n,{baseUrl:Po.spelling("baseURL"),withXsrfToken:Po.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=a&&be.merge(a.common,a[n.method]);a&&be.forEach(["delete","get","head","post","put","patch","common"],p=>{delete a[p]}),n.headers=Er.concat(i,a);const l=[];let c=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(c=c&&b.synchronous,l.unshift(b.fulfilled,b.rejected))});const u=[];this.interceptors.response.forEach(function(b){u.push(b.fulfilled,b.rejected)});let d,f=0,m;if(!c){const p=[K1.bind(this),void 0];for(p.unshift.apply(p,l),p.push.apply(p,u),m=p.length,d=Promise.resolve(n);f{if(!r._listeners)return;let a=r._listeners.length;for(;a-- >0;)r._listeners[a](o);r._listeners=null}),this.promise.then=o=>{let a;const i=new Promise(l=>{r.subscribe(l),a=l}).then(o);return i.cancel=function(){r.unsubscribe(a)},i},t(function(a,i,l){r.reason||(r.reason=new Wl(a,i,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new MI(function(o){t=o}),cancel:t}}};function IX(e){return function(n){return e.apply(null,n)}}function NX(e){return be.isObject(e)&&e.isAxiosError===!0}const $h={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries($h).forEach(([e,t])=>{$h[t]=e});function _I(e){const t=new si(e),n=cI(si.prototype.request,t);return be.extend(n,si.prototype,t,{allOwnKeys:!0}),be.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return _I(gi(e,o))},n}const Sn=_I(Xc);Sn.Axios=si;Sn.CanceledError=Wl;Sn.CancelToken=PX;Sn.isCancel=$I;Sn.VERSION=TI;Sn.toFormData=wm;Sn.AxiosError=$t;Sn.Cancel=Sn.CanceledError;Sn.all=function(t){return Promise.all(t)};Sn.spread=IX;Sn.isAxiosError=NX;Sn.mergeConfig=gi;Sn.AxiosHeaders=Er;Sn.formToJSON=e=>wI(be.isHTMLForm(e)?new FormData(e):e);Sn.getAdapter=NI.getAdapter;Sn.HttpStatusCode=$h;Sn.default=Sn;const{Axios:sY,AxiosError:cY,CanceledError:uY,isCancel:dY,CancelToken:fY,VERSION:mY,all:vY,Cancel:pY,isAxiosError:gY,spread:hY,toFormData:yY,AxiosHeaders:bY,HttpStatusCode:CY,formToJSON:SY,getAdapter:xY,mergeConfig:wY}=Sn,Ei=Sn.create({baseURL:"http://localhost:8200",timeout:3e4,headers:{"Content-Type":"application/json"}});Ei.interceptors.request.use(e=>{var t;return console.log("API Request:",(t=e.method)==null?void 0:t.toUpperCase(),e.url),e},e=>Promise.reject(e));Ei.interceptors.response.use(e=>(console.log("API Response:",e.status,e.config.url),e),e=>{var t;return console.error("API Error:",(t=e.response)==null?void 0:t.status,e.message),Promise.reject(e)});async function TX(e){var l,c,u,d,f,m;const n=(await Ei.get("/files",{params:e})).data;let r=((l=n.data)==null?void 0:l.items)||((c=n.data)==null?void 0:c.data)||[],o=((u=n.data)==null?void 0:u.total)||((d=n.data)==null?void 0:d.totalSize)||0,a=((f=n.data)==null?void 0:f.page)||1,i=((m=n.data)==null?void 0:m.pageSize)||10;return{code:n.code,msg:n.msg,data:{items:r,total:o,page:a,pageSize:i}}}async function MX(e,t="JFR"){const n=new FormData;return n.append("file",e),n.append("type",t),(await Ei.post("/files/upload",n,{headers:{"Content-Type":"multipart/form-data"}})).data}async function _X(e){return(await Ei.delete(`/files/${e}`)).data}const zI=s.createContext(void 0),Om=()=>{const e=s.useContext(zI);if(e===void 0)throw new Error("useFileContext must be used within a FileProvider");return e},zX=({children:e})=>{const[t,n]=s.useState([]),[r,o]=s.useState(!1),a=async()=>{o(!0);try{const c=await TX({page:1,pageSize:1e3});c.code===1&&c.data&&Array.isArray(c.data.items)?(n(c.data.items),console.log("Files refreshed:",c.data.items.length,"files")):(console.warn("Invalid response format:",c),n([]))}catch(c){console.error("Failed to fetch files:",c),n([])}finally{o(!1)}};s.useEffect(()=>{a()},[]);const i=t.length>0,l={files:t,hasFiles:i,loading:r,refreshFiles:a};return B.createElement(zI.Provider,{value:l},e)},{Header:jX,Sider:LX,Content:DX}=ka,{Text:$Y}=Ka,BX=({children:e})=>{const t=gE(),n=Cf(),{hasFiles:r,files:o}=Om(),a=({key:l})=>{l==="/analysis"?r&&o.length>0?t(`/analysis/${o[0].id}`):t("/analysis"):t(l)},i=[{key:"/home",icon:B.createElement(zV,null),label:"文件管理"},{key:"/analysis",icon:B.createElement(F9,null),label:"分析详情",disabled:!r}];return B.createElement(ka,{style:{minHeight:"100vh"}},B.createElement(LX,{width:200,style:{background:"#fff"}},B.createElement("div",{style:{height:48,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700,fontSize:18,borderBottom:"1px solid #f0f0f0"}},B.createElement(Z9,{style:{marginRight:8,color:"#1890ff"}}),"JFR分析平台"),B.createElement($i,{mode:"inline",selectedKeys:[n.pathname.startsWith("/analysis")?"/analysis":n.pathname],style:{height:"100%",borderRight:0},items:i,onClick:a})),B.createElement(ka,null,B.createElement(jX,{style:{display:"flex",alignItems:"center",background:"#fff",boxShadow:"0 2px 8px #f0f1f2",padding:"0 24px"}}),B.createElement(DX,{style:{padding:0,background:"#f5f6fa"}},e)))},{Dragger:kX}=bc,AX=2*1024*1024*1024,FX=({onUploadSuccess:e})=>{const{refreshFiles:t}=Om(),[n,r]=s.useState(!1),[o,a]=s.useState(0),[i,l]=s.useState([]);s.useRef(null);const c=f=>f.name.endsWith(".jfr")?f.size>AX?(Kr.error("文件大小不能超过2GB"),bc.LIST_IGNORE):!0:(Kr.error("只允许上传 .jfr 文件"),bc.LIST_IGNORE),u=async f=>{const{file:m,onSuccess:v,onError:p}=f;r(!0),a(30);try{const b=await MX(m,"JFR");if(b.code===1)a(100),await t(),Kr.success("上传成功"),v&&v(),e&&e(),setTimeout(()=>{r(!1),a(0),l([])},500);else throw new Error(b.msg||"上传失败")}catch(b){r(!1),a(0),Kr.error(b.message||"上传失败"),p&&p(b)}},d=()=>{r(!1),a(0),Kr.info("已取消上传")};return B.createElement("div",null,B.createElement(kX,{name:"file",multiple:!1,beforeUpload:c,customRequest:u,fileList:i,onChange:({fileList:f})=>l(f),showUploadList:{showRemoveIcon:!n},disabled:n,accept:".jfr"},B.createElement("p",{className:"ant-upload-drag-icon"},B.createElement(DV,null)),B.createElement("p",{className:"ant-upload-text"},"点击或拖拽上传 .jfr 文件(最大2GB)"),B.createElement("p",{className:"ant-upload-hint"},"仅支持 .jfr 文件,上传过程中可取消")),n&&B.createElement("div",{style:{marginTop:16}},B.createElement(PP,{percent:o,status:o<100?"active":"success"}),B.createElement(rr,{icon:B.createElement(JV,null),onClick:d,style:{marginTop:8},danger:!0},"取消上传")))},jI=()=>{const[e,t]=s.useState({width:window.innerWidth,height:window.innerHeight});s.useEffect(()=>{const i=()=>{t({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)},[]);const n=e.width<768,r=e.width>=768&&e.width<1024,o=e.width>=1024,a=e.width>=1200;return{...e,isMobile:n,isTablet:r,isDesktop:o,isLargeDesktop:a}};function LI(e,t){{let n="";const r=t%1e6;t=Math.round(t/1e6);const o=t%1e3;o>0&&(n=o+"ms"),t=Math.floor(t/1e3);const a=t%60;a>0&&(n=a+"s "+n),t=Math.floor(t/60);const i=t;return i>0&&(n=i.toLocaleString()+"m "+n),n.length===0?r>0?r+"ns":"0ms":n}}const G1=e=>{if(e===0)return"0 B";const t=1024,n=["B","KB","MB","GB","TB"],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,r)).toFixed(2))+" "+n[r]},HX={处理中:"processing",分析完成:"success",失败:"error"},VX=()=>{const{files:e,refreshFiles:t}=Om(),{isMobile:n}=jI(),[r,o]=s.useState(""),[a,i]=s.useState({current:1,pageSize:10}),[l,c]=s.useState({}),[u,d]=s.useState(!1),f=s.useMemo(()=>r?e.filter(g=>g.originalName.toLowerCase().includes(r.toLowerCase())):e,[e,r]),m=s.useMemo(()=>!l||!l.field?f:[...f].sort((g,y)=>{const C=g[l.field],x=y[l.field];return typeof C=="string"&&typeof x=="string"?l.order==="descend"?x.localeCompare(C):C.localeCompare(x):typeof C=="number"&&typeof x=="number"?l.order==="descend"?x-C:C-x:0}),[f,l]),v=s.useMemo(()=>{const g=(a.current-1)*a.pageSize,y=g+a.pageSize;return m.slice(g,y)},[m,a.current,a.pageSize]),p=async g=>{d(!0);try{const y=await _X(g);y.code===1?(Kr.success("删除成功"),t()):Kr.error(y.msg||"删除失败")}catch{Kr.error("删除失败")}finally{d(!1)}},h=(()=>{const g=[{title:"文件名",dataIndex:"originalName",key:"originalName",sorter:!0,ellipsis:!0,width:n?"60%":"30%",minWidth:n?150:200,render:(y,C)=>B.createElement("div",null,B.createElement("div",{style:{fontWeight:500}},y),n&&B.createElement("div",{style:{fontSize:12,color:"#666",marginTop:4}},C.type," • ",G1(C.size)," • ",new Date(C.createdTime).toLocaleDateString()))}];return n||g.push({title:"类型",dataIndex:"type",key:"type",width:"10%",minWidth:80,responsive:["lg"]},{title:"大小",dataIndex:"size",key:"size",sorter:!0,render:y=>G1(y),width:"12%",minWidth:100,responsive:["md"]},{title:"上传时间",dataIndex:"createdTime",key:"createdTime",sorter:!0,render:y=>new Date(y).toLocaleString(),width:"20%",minWidth:150,responsive:["lg"]},{title:"状态",dataIndex:"status",key:"status",render:y=>B.createElement(oI,{color:HX[y]},y),width:"12%",minWidth:100,responsive:["md"]}),g.push({title:"操作",dataIndex:"action",key:"action",width:n?"40%":"16%",minWidth:n?100:120,fixed:"right",render:(y,C)=>B.createElement("div",{style:{display:"flex",gap:4,flexWrap:"wrap"}},B.createElement(OP,{title:"确认删除该文件?",onConfirm:()=>p(C.id),okText:"删除",cancelText:"取消"},B.createElement(rr,{type:"link",size:"small",danger:!0,style:{padding:0}},"删除")),B.createElement(rr,{type:"link",size:"small",style:{padding:0},onClick:()=>window.location.href=`/analysis/${C.id}`},"分析"))}),g})();return B.createElement("div",{style:{width:"100%"}},B.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap",gap:8}},B.createElement(Ba.Search,{placeholder:"搜索文件名",allowClear:!0,style:{width:n?"100%":240,minWidth:n?"auto":200},onSearch:o}),!n&&B.createElement("div",{style:{fontSize:12,color:"#666"}},"共 ",f.length," 个文件")),B.createElement("div",{style:{overflow:"auto"}},B.createElement(oa,{columns:h,dataSource:v,loading:u,pagination:{current:a.current,pageSize:a.pageSize,total:f.length,showSizeChanger:!n,pageSizeOptions:["10","20","50"],onChange:(g,y)=>i({current:g,pageSize:y}),showQuickJumper:!n,showTotal:n?void 0:(g,y)=>`第 ${y[0]}-${y[1]} 条,共 ${g} 条`,responsive:!0,size:n?"small":"default"},onChange:(g,y,C)=>c(C),rowKey:"id",size:n?"small":"middle",scroll:{x:n?600:800,y:n?300:400},style:{minWidth:n?600:800},tableLayout:"auto"})))},{Title:WX}=Ka,KX=()=>{const{isMobile:e}=jI(),[t,n]=s.useState(!1),r=()=>{n(!1)};return B.createElement("div",{style:{padding:e?12:24,minHeight:"100vh",backgroundColor:"#f5f6fa"}},B.createElement(WX,{level:e?3:2,style:{marginBottom:16}},"JFR 文件管理"),B.createElement(iP,{gutter:e?12:24},B.createElement(ih,{xs:24,sm:24,md:24,lg:24,xl:24},B.createElement(pa,{title:B.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:8}},B.createElement("span",{style:{fontSize:e?14:16}},"文件列表"),B.createElement(xo,{title:"上传文件"},B.createElement(tW,{style:{fontSize:e?16:20,cursor:"pointer",color:"#1890ff"},onClick:()=>n(!0)}))),bordered:!1,style:{borderRadius:8,boxShadow:"0 2px 8px rgba(0,0,0,0.1)"},bodyStyle:{padding:e?12:24}},B.createElement(VX,null)),B.createElement(Eo,{open:t,title:"上传 .jfr 文件",footer:null,onCancel:()=>n(!1),destroyOnClose:!0,width:e?"90%":520,centered:!0},B.createElement(FX,{onUploadSuccess:r})))))},{Title:EY}=Ka;function UX(e){let t=0;for(let n=0;n/[\u4e00-\u9fa5\u3000-\u303f\uff00-\uffef]/.test(f)?14:/[0-9a-zA-Z]/.test(f)?8:6,o=e.split("").reduce((f,m)=>f+r(m),0),a=t-BI*2;if(o<=a)return e;const i=e.split(".");if(i.length>=2){const f=i[i.length-2],m=i[i.length-1];if(i.length===2&&m.split("").reduce((h,g)=>h+r(g),0)+3<=a)return`...${m}`;const v=`${f}.${m}`;if(v.split("").reduce((b,h)=>b+r(h),0)<=a)return v}let l=0,c="";const u="...",d=3*6;for(let f=0;f2){const n=t[t.length-2],r=t[t.length-1],o=t.slice(0,-2).join(".");return o.length>30?`${"..."+o.substring(o.length-25)}.${n}.${r}`:`${o}.${n}.${r}`}return e}function Vy(e){let t=e.value||0;if(e.children)for(const n of e.children)t+=Vy(n);return t}function QX(e,t,n="CPU Time"){return Vy(e),`Total ${n}: ${LI("ns",e.value)}`}function kI(e){if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(e).catch(t=>{console.error("Failed to copy text: ",t)});else{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")}catch(n){console.error("Failed to copy text: ",n)}document.body.removeChild(t)}}function JX({node:e,x:t,y:n,width:r,height:o,depth:a,onHover:i,isActive:l,onClick:c,isZoomed:u,isHighlighted:d,isRoot:f,totalValue:m,dimension:v}){const p=r>Oh?XX(e.name,r):"",b=p.length>0,h=r<100?10:r<150?11:12,g=f?QX(e,m,v):p,y=f&&r>Oh,C=l?1:Math.max(.7,1-a*.05),x=S=>{if((S.ctrlKey||S.metaKey)&&S.key==="c"){S.preventDefault(),kI(e.name);const w=S.currentTarget.textContent;S.currentTarget.textContent="已复制!",setTimeout(()=>{S.currentTarget&&(S.currentTarget.textContent=w)},1e3)}};return B.createElement("g",{style:{pointerEvents:"all"}},B.createElement("rect",{x:t,y:n,width:r,height:o,fill:GX(e.name,qX),opacity:C,stroke:d?"#ff8200":"#fff",strokeWidth:d?3:1,rx:4,onMouseEnter:S=>{S.preventDefault(),S.stopPropagation(),i(e,S,!0)},onMouseLeave:S=>{S.preventDefault(),S.stopPropagation(),i(e,S,!1)},onClick:S=>{S.stopPropagation(),c(e)},onKeyDown:x,tabIndex:0,style:{cursor:"pointer"}}),(b||y)&&B.createElement("text",{x:t+BI,y:n+o/2+4,fontSize:h,fill:"#222",pointerEvents:"none",style:{userSelect:"none"},textAnchor:"start",dominantBaseline:"middle"},g))}function AI(e,t,n,r,o,a,i,l,c,u,d,f,m=!1){if(!e)return[];const v=d&&e.name.toLowerCase().includes(d.toLowerCase()),p=`${e.name}-${t}-${n}-${o}`,b=[B.createElement(JX,{key:p,node:e,x:t,y:n,width:r,height:Eh,depth:o,onHover:i,isActive:l===e,onClick:c,isZoomed:u===e,isHighlighted:v,isRoot:m,totalValue:a,dimension:f})];if(e.children&&e.children.length>0){const h=[...e.children].sort((y,C)=>C.value-y.value),g=h.reduce((y,C)=>y+C.value,0);if(g>0){let y=t;const C=r,x=h.length-1,S=1,w=Math.min(3,C*.02),E=x>0?Math.min(w,Math.max(S,C/(h.length*10))):0,O=x*E,$=Math.max(C-O,C*.8);let R=$;const I=[];for(let N=0;N0&&y{const[c,u]=s.useState(null),[d,f]=s.useState(null),[m,v]=s.useState(null),p=B.useRef(null),[b,h]=s.useState(t||900);if(B.useEffect(()=>{function $(){if(p.current){const R=p.current.offsetWidth;h(Math.max(R,300))}}return $(),window.addEventListener("resize",$),()=>window.removeEventListener("resize",$)},[]),B.useEffect(()=>{a&&a(m)},[m,a]),B.useImperativeHandle(l,()=>({resetZoom:()=>v(null)})),B.useEffect(()=>{const $=R=>{if((R.ctrlKey||R.metaKey)&&R.key==="c"&&c){R.preventDefault(),kI(c.name);const I=document.createElement("div");I.textContent="已复制方法名到剪贴板",I.style.cssText=` + position: fixed; + top: 20px; + right: 20px; + background: #52c41a; + color: white; + padding: 8px 16px; + border-radius: 4px; + z-index: 10000; + font-size: 14px; + box-shadow: 0 2px 8px rgba(0,0,0,0.2); + `,document.body.appendChild(I),setTimeout(()=>{document.body.removeChild(I)},2e3)}};return document.addEventListener("keydown",$),()=>document.removeEventListener("keydown",$)},[c]),!e)return B.createElement("div",{style:{height:400,display:"flex",alignItems:"center",justifyContent:"center",color:"#aaa",fontSize:20,background:"#fafafa",borderRadius:8,border:"1px dashed #ddd"}},"暂无火焰图数据");function g($,R=1){return!$.children||$.children.length===0?R:Math.max(...$.children.map(I=>g(I,R+1)))}const y=g(m||e),C=Math.max(y*(Eh+DI)+40,200),x=($,R,I)=>{console.log("Hover event:",{nodeName:$.name,active:I,value:$.value,x:R.clientX,y:R.clientY,target:R.target}),u(I?$:null),f(I?{x:R.clientX,y:R.clientY,node:$}:null)},S=$=>{v($)},w=$=>{v(null)};function E($){return Vy($)}const O=o||E(m||e);return B.createElement("div",{style:{position:"relative",width:"100%",minHeight:200,background:"#fafafa",borderRadius:8,overflow:"hidden"},ref:p},B.createElement("svg",{width:b,height:C,style:{display:"block",background:"#fafafa",borderRadius:8,width:"100%",minWidth:300,maxWidth:"100%"},onDoubleClick:w,viewBox:`0 0 ${b} ${C}`,preserveAspectRatio:"xMidYMid meet"},AI(m||e,0,20,b,0,O,x,c,S,m,r,i,!0)),d&&B.createElement("div",{style:{position:"fixed",left:Math.min(d.x+12,window.innerWidth-250),top:Math.min(d.y+12,window.innerHeight-150),background:"#fff",border:"1px solid #ddd",borderRadius:6,boxShadow:"0 2px 8px #0001",padding:"8px 16px",zIndex:1e3,pointerEvents:"none",color:"#222",fontSize:14,minWidth:200,maxWidth:500,wordBreak:"break-all",whiteSpace:"pre-wrap"}},B.createElement("div",{style:{fontWeight:"bold",marginBottom:4,wordBreak:"break-all",lineHeight:"1.4",fontSize:13}},d.node.name==="root"?"Total":YX(d.node.name)),B.createElement("div",{style:{fontSize:12,color:"#666",marginBottom:2}},"耗时/值: ",LI("ns",d.node.value)),B.createElement("div",{style:{fontSize:12,color:"#666",marginBottom:2}},"百分比: ",(d.node.value/O*100).toFixed(2),"%"),d.node.children&&B.createElement("div",{style:{fontSize:12,color:"#666"}},"子节点: ",d.node.children.length),B.createElement("div",{style:{fontSize:11,color:"#1890ff",marginTop:4,borderTop:"1px solid #eee",paddingTop:4,fontWeight:"bold",backgroundColor:"#f0f8ff",padding:"4px 8px",borderRadius:"3px"}},"💡 按 Ctrl+C 复制方法名")))});async function eY(e,t,n=!0,r){const o={dimension:t,include:n};return r&&r.length>0&&(o.taskSet=r),(await Ei.post(`/api/jfr/analyze/${e}`,null,{params:o})).data}async function tY(){return(await Ei.get("/api/jfr/dimensions")).data}function nY(e,t){const n={name:"root",value:0,children:[]};for(const[r,o]of e){let a=n;a.value+=o;for(let i=0;id.name===c);u||(u={name:c,value:0,children:[]},a.children.push(u)),u.value+=o,a=u}}return n}const{Title:rY}=Ka,q1=()=>{const{fileId:e}=jM(),{files:t,hasFiles:n}=Om(),[r,o]=s.useState(e),[a,i]=s.useState(""),[l,c]=s.useState([]),[u,d]=s.useState("ns"),[f,m]=s.useState(""),[v,p]=s.useState([]),[b,h]=s.useState([]),[g,y]=s.useState(!0),[C,x]=s.useState(null),[S,w]=s.useState(!1),[E,O]=s.useState(""),[$,R]=s.useState(!1),I=B.useRef(null);s.useEffect(()=>{if(t.length>0)if(e){const P=t.find(M=>M.id.toString()===e);o(P?e:t[0].id.toString())}else o(t[0].id.toString());else o(null)},[t,e]),s.useEffect(()=>{if(!r)return;if(!t.find(M=>M.id.toString()===r)){Kr.error("文件不存在");return}tY().then(M=>{if(M.code===1&&M.data){const _=M.data.map(z=>({label:z,value:z,unit:z==="CPU"?"ns":"bytes"}));c(_),_.length>0&&(i(_[0].value),d(_[0].unit))}}).catch(M=>Kr.error("获取分析维度失败: "+M.message))},[r,t]),s.useEffect(()=>{!r||!a||(w(!0),eY(r,a,g,b.length>0?b:void 0).then(P=>{if(P.code===1&&P.data){const{data:M,symbolTable:_,threadSplit:z}=P.data;x(M&&_?nY(M,_):null),z&&p(Object.keys(z))}else x(null);w(!1)}).catch(P=>{w(!1),Kr.error("分析失败: "+P.message)}))},[r,a,g,b]);const N=v.filter(P=>P.toLowerCase().includes(f.toLowerCase())),T=t.map(P=>({label:P.originalName,value:P.id.toString()}));return B.createElement("div",{style:{padding:24}},B.createElement(rY,{level:2},"JFR 分析详情"),B.createElement(iP,{gutter:24},B.createElement(ih,{span:6},B.createElement(pa,{title:"选择文件",variant:"borderless",style:{marginBottom:16}},B.createElement(La,{style:{width:"100%"},options:T,value:r,onChange:o,placeholder:"请选择要分析的文件",disabled:!n}),!n&&B.createElement("div",{style:{marginTop:8,color:"#999",fontSize:12}},"暂无文件,请先上传JFR文件")),B.createElement(pa,{title:"分析维度",variant:"borderless",style:{marginBottom:16}},B.createElement(La,{style:{width:"100%"},options:l,value:a,onChange:P=>{i(P);const M=l.find(_=>_.value===P);d((M==null?void 0:M.unit)||"ns")},disabled:!n||!r})),B.createElement(pa,{title:"任务筛选",variant:"borderless"},B.createElement(Ba.Search,{placeholder:"搜索任务名",allowClear:!0,value:f,onChange:P=>m(P.target.value),style:{marginBottom:8},disabled:!n||!r}),B.createElement(Da,{checked:g,onChange:P=>y(P.target.checked),style:{marginBottom:8},disabled:!n||!r},"包含(Include)"),B.createElement(Da.Group,{options:N,value:b,onChange:h,style:{display:"block",maxHeight:200,overflow:"auto"},disabled:!n||!r})),B.createElement(pa,{title:"火焰图搜索",variant:"borderless",style:{marginTop:16}},B.createElement(Ba.Search,{placeholder:"方法/类名高亮",allowClear:!0,value:E,onChange:P=>O(P.target.value),disabled:!n||!r}))),B.createElement(ih,{span:18},B.createElement(pa,{title:B.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},B.createElement("span",null,"火焰图"),$&&B.createElement("button",{onClick:()=>{var P;(P=I.current)==null||P.resetZoom()},style:{padding:"4px 8px",background:"#1890ff",color:"white",border:"none",borderRadius:4,cursor:"pointer",fontSize:12}},"返回")),variant:"borderless"},B.createElement(Oy,{spinning:S,tip:"火焰图加载中..."},B.createElement(ZX,{ref:I,data:C,search:E,dimension:a,onZoomChange:P=>R(!!P)}))))))},oY=()=>B.createElement(zX,null,B.createElement(t_,null,B.createElement(BX,null,B.createElement(JM,null,B.createElement(fs,{path:"/home",element:B.createElement(KX,null)}),B.createElement(fs,{path:"/analysis",element:B.createElement(q1,null)}),B.createElement(fs,{path:"/analysis/:fileId",element:B.createElement(q1,null)}),B.createElement(fs,{path:"*",element:B.createElement(YM,{to:"/home",replace:!0})})))));op.createRoot(document.getElementById("root")).render(B.createElement(B.StrictMode,null,B.createElement(oY,null))); diff --git a/arthas-jfr-backend/src/main/resources/static/assets/index-Dok2V9Ob.css b/arthas-jfr-backend/src/main/resources/static/assets/index-Dok2V9Ob.css new file mode 100644 index 0000000000..21acf17955 --- /dev/null +++ b/arthas-jfr-backend/src/main/resources/static/assets/index-Dok2V9Ob.css @@ -0,0 +1 @@ +html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}body{background:#f5f6fa;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif} diff --git a/arthas-jfr-backend/src/main/resources/static/index.html b/arthas-jfr-backend/src/main/resources/static/index.html new file mode 100644 index 0000000000..3296103b0c --- /dev/null +++ b/arthas-jfr-backend/src/main/resources/static/index.html @@ -0,0 +1,13 @@ + + + + + JFR 文件分析 + + + + + +
+ + \ No newline at end of file diff --git a/arthas-jfr-backend/src/test/java/org/example/jfranalyzerbackend/JfrAnalyzerBackendApplicationTests.java b/arthas-jfr-backend/src/test/java/org/example/jfranalyzerbackend/JfrAnalyzerBackendApplicationTests.java new file mode 100644 index 0000000000..aa514abbdd --- /dev/null +++ b/arthas-jfr-backend/src/test/java/org/example/jfranalyzerbackend/JfrAnalyzerBackendApplicationTests.java @@ -0,0 +1,13 @@ +package org.example.jfranalyzerbackend; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class JfrAnalyzerBackendApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/arthas-jfr-backend/src/test/java/org/example/jfranalyzerbackend/service/JFRAnalysisServiceTest.java b/arthas-jfr-backend/src/test/java/org/example/jfranalyzerbackend/service/JFRAnalysisServiceTest.java new file mode 100644 index 0000000000..7d812f3b37 --- /dev/null +++ b/arthas-jfr-backend/src/test/java/org/example/jfranalyzerbackend/service/JFRAnalysisServiceTest.java @@ -0,0 +1,28 @@ +package org.example.jfranalyzerbackend.service; + +import org.example.jfranalyzerbackend.vo.FlameGraph; +import org.example.jfranalyzerbackend.vo.Metadata; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * JFR分析服务测试类 + */ +@SpringBootTest +class JFRAnalysisServiceTest { + + @Autowired + private JFRAnalysisService jfrAnalysisService; + + @Test + void testGetMetadata() { + System.out.println("test"); + } +} \ No newline at end of file diff --git a/arthas-jfr-frontend/.gitignore b/arthas-jfr-frontend/.gitignore new file mode 100644 index 0000000000..66b5997136 --- /dev/null +++ b/arthas-jfr-frontend/.gitignore @@ -0,0 +1,121 @@ +# Dependencies +node_modules/ + +# Reference materials +参考/ + +# Documentation +文档/ + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Coverage directory used by tools like istanbul +coverage/ +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +public + +# Vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* \ No newline at end of file diff --git a/arthas-jfr-frontend/index.html b/arthas-jfr-frontend/index.html new file mode 100644 index 0000000000..df5f10a1a9 --- /dev/null +++ b/arthas-jfr-frontend/index.html @@ -0,0 +1,12 @@ + + + + + JFR 文件分析 + + + +
+ + + \ No newline at end of file diff --git a/arthas-jfr-frontend/node/node.exe b/arthas-jfr-frontend/node/node.exe new file mode 100644 index 0000000000..3d0ff81678 Binary files /dev/null and b/arthas-jfr-frontend/node/node.exe differ diff --git a/arthas-jfr-frontend/node/npm b/arthas-jfr-frontend/node/npm new file mode 100644 index 0000000000..7f210b936e --- /dev/null +++ b/arthas-jfr-frontend/node/npm @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +# This is used by the Node.js installer, which expects the cygwin/mingw +# shell script to already be present in the npm dependency folder. + +(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix + +basedir=`dirname "$0"` + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ `uname` = 'Linux' ] && type wslpath &>/dev/null ; then + IS_WSL="true" +fi + +function no_node_dir { + # if this didn't work, then everything else below will fail + echo "Could not determine Node.js install directory" >&2 + exit 1 +} + +NODE_EXE="$basedir/node.exe" +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE="$basedir/node" +fi +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE=node +fi + +# this path is passed to node.exe, so it needs to match whatever +# kind of paths Node.js thinks it's using, typically win32 paths. +CLI_BASEDIR="$("$NODE_EXE" -p 'require("path").dirname(process.execPath)' 2> /dev/null)" +if [ $? -ne 0 ]; then + # this fails under WSL 1 so add an additional message. we also suppress stderr above + # because the actual error raised is not helpful. in WSL 1 node.exe cannot handle + # output redirection properly. See https://github.com/microsoft/WSL/issues/2370 + if [ "$IS_WSL" == "true" ]; then + echo "WSL 1 is not supported. Please upgrade to WSL 2 or above." >&2 + fi + no_node_dir +fi +NPM_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npm-cli.js" +NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` +if [ $? -ne 0 ]; then + no_node_dir +fi +NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js" + +# a path that will fail -f test on any posix bash +NPM_WSL_PATH="/.." + +# WSL can run Windows binaries, so we have to give it the win32 path +# however, WSL bash tests against posix paths, so we need to construct that +# to know if npm is installed globally. +if [ "$IS_WSL" == "true" ]; then + NPM_WSL_PATH=`wslpath "$NPM_PREFIX_NPM_CLI_JS"` +fi +if [ -f "$NPM_PREFIX_NPM_CLI_JS" ] || [ -f "$NPM_WSL_PATH" ]; then + NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS" +fi + +"$NODE_EXE" "$NPM_CLI_JS" "$@" diff --git a/arthas-jfr-frontend/node/npm.cmd b/arthas-jfr-frontend/node/npm.cmd new file mode 100644 index 0000000000..880554dcdd --- /dev/null +++ b/arthas-jfr-frontend/node/npm.cmd @@ -0,0 +1,19 @@ +:: Created by npm, please don't edit manually. +@ECHO OFF + +SETLOCAL + +SET "NODE_EXE=%~dp0\node.exe" +IF NOT EXIST "%NODE_EXE%" ( + SET "NODE_EXE=node" +) + +SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" +FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( + SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js" +) +IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" ( + SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%" +) + +"%NODE_EXE%" "%NPM_CLI_JS%" %* diff --git a/arthas-jfr-frontend/node/npx b/arthas-jfr-frontend/node/npx new file mode 100644 index 0000000000..719ff8ecdc --- /dev/null +++ b/arthas-jfr-frontend/node/npx @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +# This is used by the Node.js installer, which expects the cygwin/mingw +# shell script to already be present in the npm dependency folder. + +(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix + +basedir=`dirname "$0"` + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ `uname` = 'Linux' ] && type wslpath &>/dev/null ; then + IS_WSL="true" +fi + +function no_node_dir { + # if this didn't work, then everything else below will fail + echo "Could not determine Node.js install directory" >&2 + exit 1 +} + +NODE_EXE="$basedir/node.exe" +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE="$basedir/node" +fi +if ! [ -x "$NODE_EXE" ]; then + NODE_EXE=node +fi + +# this path is passed to node.exe, so it needs to match whatever +# kind of paths Node.js thinks it's using, typically win32 paths. +CLI_BASEDIR="$("$NODE_EXE" -p 'require("path").dirname(process.execPath)' 2> /dev/null)" +if [ $? -ne 0 ]; then + # this fails under WSL 1 so add an additional message. we also suppress stderr above + # because the actual error raised is not helpful. in WSL 1 node.exe cannot handle + # output redirection properly. See https://github.com/microsoft/WSL/issues/2370 + if [ "$IS_WSL" == "true" ]; then + echo "WSL 1 is not supported. Please upgrade to WSL 2 or above." >&2 + fi + no_node_dir +fi +NPM_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npm-cli.js" +NPX_CLI_JS="$CLI_BASEDIR/node_modules/npm/bin/npx-cli.js" +NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g` +if [ $? -ne 0 ]; then + no_node_dir +fi +NPM_PREFIX_NPX_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npx-cli.js" + +# a path that will fail -f test on any posix bash +NPX_WSL_PATH="/.." + +# WSL can run Windows binaries, so we have to give it the win32 path +# however, WSL bash tests against posix paths, so we need to construct that +# to know if npm is installed globally. +if [ "$IS_WSL" == "true" ]; then + NPX_WSL_PATH=`wslpath "$NPM_PREFIX_NPX_CLI_JS"` +fi +if [ -f "$NPM_PREFIX_NPX_CLI_JS" ] || [ -f "$NPX_WSL_PATH" ]; then + NPX_CLI_JS="$NPM_PREFIX_NPX_CLI_JS" +fi + +"$NODE_EXE" "$NPX_CLI_JS" "$@" diff --git a/arthas-jfr-frontend/node/npx.cmd b/arthas-jfr-frontend/node/npx.cmd new file mode 100644 index 0000000000..9339ebd065 --- /dev/null +++ b/arthas-jfr-frontend/node/npx.cmd @@ -0,0 +1,20 @@ +:: Created by npm, please don't edit manually. +@ECHO OFF + +SETLOCAL + +SET "NODE_EXE=%~dp0\node.exe" +IF NOT EXIST "%NODE_EXE%" ( + SET "NODE_EXE=node" +) + +SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js" +SET "NPX_CLI_JS=%~dp0\node_modules\npm\bin\npx-cli.js" +FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO ( + SET "NPM_PREFIX_NPX_CLI_JS=%%F\node_modules\npm\bin\npx-cli.js" +) +IF EXIST "%NPM_PREFIX_NPX_CLI_JS%" ( + SET "NPX_CLI_JS=%NPM_PREFIX_NPX_CLI_JS%" +) + +"%NODE_EXE%" "%NPX_CLI_JS%" %* diff --git a/arthas-jfr-frontend/package-lock.json b/arthas-jfr-frontend/package-lock.json new file mode 100644 index 0000000000..84ebfb3a36 --- /dev/null +++ b/arthas-jfr-frontend/package-lock.json @@ -0,0 +1,2615 @@ +{ + "name": "arthas-fronted", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "arthas-fronted", + "version": "0.1.0", + "dependencies": { + "@ant-design/icons": "^5.2.5", + "antd": "^5.13.7", + "axios": "^1.6.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.3" + }, + "devDependencies": { + "@types/react": "^18.2.41", + "@types/react-dom": "^18.2.17", + "@types/react-router-dom": "^5.3.3", + "less": "^4.3.0", + "typescript": "^5.4.5", + "vite": "^5.2.8" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.2.1", + "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-7.2.1.tgz", + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.23.0", + "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz", + "integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmmirror.com/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/@rc-component/qrcode/-/qrcode-1.0.0.tgz", + "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmmirror.com/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.2.7", + "resolved": "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-2.2.7.tgz", + "integrity": "sha512-Qggj4Z0AA2i5dJhzlfFSmg1Qrziu8dsdHOihROL5Kl18seO2Eh/ZaTYt2c8a/CyGaTChnFry7BEYew1+/fhSbA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.0", + "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.1.tgz", + "integrity": "sha512-JAcBr1+fgqx20m7Fwe1DxPUl/hPkee6jA6Pl7n1v2EFiktAHenTaXl5aIFjUIEsfn9w3HE4gK1lEgNGMzBDs1w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.1.tgz", + "integrity": "sha512-RurZetXqTu4p+G0ChbnkwBuAtwAbIwJkycw1n6GvlGlBuS4u5qlr5opix8cBAYFJgaY05TWtM+LaoFggUmbZEQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.1.tgz", + "integrity": "sha512-fM/xPesi7g2M7chk37LOnmnSTHLG/v2ggWqKj3CCA1rMA4mm5KVBT1fNoswbo1JhPuNNZrVwpTvlCVggv8A2zg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.1.tgz", + "integrity": "sha512-gDnWk57urJrkrHQ2WVx9TSVTH7lSlU7E3AFqiko+bgjlh78aJ88/3nycMax52VIVjIm3ObXnDL2H00e/xzoipw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.1.tgz", + "integrity": "sha512-wnFQmJ/zPThM5zEGcnDcCJeYJgtSLjh1d//WuHzhf6zT3Md1BvvhJnWoy+HECKu2bMxaIcfWiu3bJgx6z4g2XA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.1.tgz", + "integrity": "sha512-uBmIxoJ4493YATvU2c0upGz87f99e3wop7TJgOA/bXMFd2SvKCI7xkxY/5k50bv7J6dw1SXT4MQBQSLn8Bb/Uw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.1.tgz", + "integrity": "sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.1.tgz", + "integrity": "sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.1.tgz", + "integrity": "sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.1.tgz", + "integrity": "sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.1.tgz", + "integrity": "sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.1.tgz", + "integrity": "sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.1.tgz", + "integrity": "sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.1.tgz", + "integrity": "sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.1.tgz", + "integrity": "sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.1.tgz", + "integrity": "sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.1.tgz", + "integrity": "sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.1.tgz", + "integrity": "sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.1.tgz", + "integrity": "sha512-JYA3qvCOLXSsnTR3oiyGws1Dm0YTuxAAeaYGVlGpUsHqloPcFjPg+X0Fj2qODGLNwQOAcCiQmHub/V007kiH5A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.1.tgz", + "integrity": "sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmmirror.com/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.23", + "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.23.tgz", + "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmmirror.com/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/antd": { + "version": "5.26.3", + "resolved": "https://registry.npmmirror.com/antd/-/antd-5.26.3.tgz", + "integrity": "sha512-M/s9Q39h/+G7AWnS6fbNxmAI9waTH4ti022GVEXBLq2j810V1wJ3UOQps13nEilzDNcyxnFN/EIbqIgS7wSYaA==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.2.1", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.2.7", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.3.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.8", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.51.1", + "rc-tabs": "~15.6.1", + "rc-textarea": "~1.10.0", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.9.2", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.10.0.tgz", + "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/less": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/less/-/less-4.3.0.tgz", + "integrity": "sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/rc-cascader": { + "version": "3.34.0", + "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.34.0.tgz", + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.3.0", + "resolved": "https://registry.npmmirror.com/rc-drawer/-/rc-drawer-7.3.0.tgz", + "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-2.7.0.tgz", + "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.12.0", + "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-7.12.0.tgz", + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.5.0", + "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.8.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.20.0", + "resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.8.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.10.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.4", + "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.11.3", + "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.11.3.tgz", + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.7.0.tgz", + "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.8", + "resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.8", + "resolved": "https://registry.npmmirror.com/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.51.1", + "resolved": "https://registry.npmmirror.com/rc-table/-/rc-table-7.51.1.tgz", + "integrity": "sha512-5iq15mTHhvC42TlBLRCoCBLoCmGlbRZAlyF21FonFnS/DIC8DeRqnmdyVREwt2CFbPceM0zSNdEeVfiGaqYsKw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.6.1", + "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.6.1.tgz", + "integrity": "sha512-/HzDV1VqOsUWyuC0c6AkxVYFjvx9+rFPKZ32ejxX0Uc7QCzcEjTA9/xMgv4HemPKwzBNX8KhGVbbumDjnj92aA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.10.0.tgz", + "integrity": "sha512-ai9IkanNuyBS4x6sOL8qu/Ld40e6cEs6pgk93R+XLYg0mDSjNBGey6/ZpDs5+gNLD7urQ14po3V6Ck2dJLt9SA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.8.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.27.0", + "resolved": "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.9.2", + "resolved": "https://registry.npmmirror.com/rc-upload/-/rc-upload-4.9.2.tgz", + "integrity": "sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.19.1", + "resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.19.1.tgz", + "integrity": "sha512-DCapO2oyPqmooGhxBuXHM4lFuX+sshQwWqqkuyFA+4rShLe//+GEPVwiDgO+jKtKHtbeYwZoNvetwfHdOf+iUQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-router": { + "version": "6.30.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.30.1.tgz", + "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.1", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.30.1.tgz", + "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", + "react-router": "6.30.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.44.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.44.1.tgz", + "integrity": "sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.44.1", + "@rollup/rollup-android-arm64": "4.44.1", + "@rollup/rollup-darwin-arm64": "4.44.1", + "@rollup/rollup-darwin-x64": "4.44.1", + "@rollup/rollup-freebsd-arm64": "4.44.1", + "@rollup/rollup-freebsd-x64": "4.44.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.44.1", + "@rollup/rollup-linux-arm-musleabihf": "4.44.1", + "@rollup/rollup-linux-arm64-gnu": "4.44.1", + "@rollup/rollup-linux-arm64-musl": "4.44.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.44.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.44.1", + "@rollup/rollup-linux-riscv64-gnu": "4.44.1", + "@rollup/rollup-linux-riscv64-musl": "4.44.1", + "@rollup/rollup-linux-s390x-gnu": "4.44.1", + "@rollup/rollup-linux-x64-gnu": "4.44.1", + "@rollup/rollup-linux-x64-musl": "4.44.1", + "@rollup/rollup-win32-arm64-msvc": "4.44.1", + "@rollup/rollup-win32-ia32-msvc": "4.44.1", + "@rollup/rollup-win32-x64-msvc": "4.44.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", + "license": "MIT" + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vite": { + "version": "5.4.19", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + } + } +} diff --git a/arthas-jfr-frontend/package.json b/arthas-jfr-frontend/package.json new file mode 100644 index 0000000000..1dbd36ffab --- /dev/null +++ b/arthas-jfr-frontend/package.json @@ -0,0 +1,28 @@ +{ + "name": "arthas-frontend", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "start": "vite" + }, + "dependencies": { + "@ant-design/icons": "^5.2.5", + "antd": "^5.13.7", + "axios": "^1.6.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.3" + }, + "devDependencies": { + "@types/react": "^18.2.41", + "@types/react-dom": "^18.2.17", + "@types/react-router-dom": "^5.3.3", + "less": "^4.3.0", + "typescript": "^5.4.5", + "vite": "^5.2.8" + } +} diff --git a/arthas-jfr-frontend/pom.xml b/arthas-jfr-frontend/pom.xml new file mode 100644 index 0000000000..ac9a8925f1 --- /dev/null +++ b/arthas-jfr-frontend/pom.xml @@ -0,0 +1,81 @@ + + 4.0.0 + + + com.taobao.arthas + arthas-all + ${revision} + ../pom.xml + + + arthas-jfr-frontend + pom + Arthas Frontend + Arthas Frontend Web Application + + + + + + com.github.eirslett + frontend-maven-plugin + 1.14.1 + + + + + install node and npm + install-node-and-npm + + v18.17.1 + 9.8.1 + + + + + + npm install + npm + + install + + + + + + npm run build + npm + + run build + + + + + + + + maven-resources-plugin + 3.3.1 + + + copy-frontend + prepare-package + copy-resources + + ${project.parent.basedir}/arthas-jfr-backend/src/main/resources/static + + + ${project.basedir}/dist + false + + + + + + + + + diff --git a/arthas-jfr-frontend/src/App.tsx b/arthas-jfr-frontend/src/App.tsx new file mode 100644 index 0000000000..f44fb51af4 --- /dev/null +++ b/arthas-jfr-frontend/src/App.tsx @@ -0,0 +1,27 @@ +// @ts-nocheck +// eslint-disable-next-line +import React from 'react'; +import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; +import BasicLayout from './layouts/BasicLayout'; +import Home from './pages/Home'; +import Analysis from './pages/Analysis'; +import { FileProvider } from './stores/FileContext'; + +const App: React.FC = () => { + return ( + + + + + } /> + } /> + } /> + } /> + + + + + ); +}; + +export default App; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/components/FileTable/FileTable.tsx b/arthas-jfr-frontend/src/components/FileTable/FileTable.tsx new file mode 100644 index 0000000000..6c6734abe7 --- /dev/null +++ b/arthas-jfr-frontend/src/components/FileTable/FileTable.tsx @@ -0,0 +1,232 @@ +// @ts-nocheck +// eslint-disable-next-line +import React, { useState, useMemo } from 'react'; +import { Table, Input, Tag, Button, Popconfirm, message } from 'antd'; +import { deleteFile } from '../../services/fileService'; +import { useFileContext } from '../../stores/FileContext'; +import { useWindowSize } from '../../hooks/useWindowSize'; +import { formatFileSize } from '../../utils/format'; + +const statusColor = { + '处理中': 'processing', + '分析完成': 'success', + '失败': 'error', +}; + +const FileTable: React.FC = () => { + const { files, refreshFiles } = useFileContext(); + const { width, isMobile } = useWindowSize(); + const [search, setSearch] = useState(''); + const [pagination, setPagination] = useState({ current: 1, pageSize: 10 }); + const [sorter, setSorter] = useState({}); + const [loading, setLoading] = useState(false); + + // 根据搜索条件过滤文件 + const filteredFiles = useMemo(() => { + if (!search) return files; + return files.filter(file => + file.originalName.toLowerCase().includes(search.toLowerCase()) + ); + }, [files, search]); + + // 根据排序条件排序文件 + const sortedFiles = useMemo(() => { + if (!sorter || !sorter.field) return filteredFiles; + + return [...filteredFiles].sort((a, b) => { + const aValue = a[sorter.field]; + const bValue = b[sorter.field]; + + if (typeof aValue === 'string' && typeof bValue === 'string') { + return sorter.order === 'descend' + ? bValue.localeCompare(aValue) + : aValue.localeCompare(bValue); + } + + if (typeof aValue === 'number' && typeof bValue === 'number') { + return sorter.order === 'descend' ? bValue - aValue : aValue - bValue; + } + + return 0; + }); + }, [filteredFiles, sorter]); + + // 分页处理 + const paginatedFiles = useMemo(() => { + const start = (pagination.current - 1) * pagination.pageSize; + const end = start + pagination.pageSize; + return sortedFiles.slice(start, end); + }, [sortedFiles, pagination.current, pagination.pageSize]); + + const handleDelete = async (id: number) => { + setLoading(true); + try { + const res = await deleteFile(id); + if (res.code === 1) { + message.success('删除成功'); + refreshFiles(); // 刷新全局文件列表 + } else { + message.error(res.msg || '删除失败'); + } + } catch (e) { + message.error('删除失败'); + } finally { + setLoading(false); + } + }; + + // 动态列配置 + const getColumns = () => { + const baseColumns = [ + { + title: '文件名', + dataIndex: 'originalName', + key: 'originalName', + sorter: true, + ellipsis: true, + width: isMobile ? '60%' : '30%', + minWidth: isMobile ? 150 : 200, + render: (text, record) => ( +
+
{text}
+ {isMobile && ( +
+ {record.type} • {formatFileSize(record.size)} • {new Date(record.createdTime).toLocaleDateString()} +
+ )} +
+ ), + }, + ]; + + // 桌面端显示完整列 + if (!isMobile) { + baseColumns.push( + { + title: '类型', + dataIndex: 'type', + key: 'type', + width: '10%', + minWidth: 80, + responsive: ['lg'], + }, + { + title: '大小', + dataIndex: 'size', + key: 'size', + sorter: true, + render: (size) => formatFileSize(size), + width: '12%', + minWidth: 100, + responsive: ['md'], + }, + { + title: '上传时间', + dataIndex: 'createdTime', + key: 'createdTime', + sorter: true, + render: (time) => new Date(time).toLocaleString(), + width: '20%', + minWidth: 150, + responsive: ['lg'], + }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + render: (status) => {status}, + width: '12%', + minWidth: 100, + responsive: ['md'], + } + ); + } + + // 操作列 + baseColumns.push({ + title: '操作', + dataIndex: 'action', + key: 'action', + width: isMobile ? '40%' : '16%', + minWidth: isMobile ? 100 : 120, + fixed: 'right', + render: (_, record) => ( +
+ handleDelete(record.id)} okText="删除" cancelText="取消"> + + + +
+ ), + }); + + return baseColumns; + }; + + const columns = getColumns(); + + return ( +
+
+ + {!isMobile && ( +
+ 共 {filteredFiles.length} 个文件 +
+ )} +
+
+ setPagination({ current: page, pageSize }), + showQuickJumper: !isMobile, + showTotal: !isMobile ? (total, range) => `第 ${range[0]}-${range[1]} 条,共 ${total} 条` : undefined, + responsive: true, + size: isMobile ? 'small' : 'default', + }} + onChange={(_, __, sorterObj) => setSorter(sorterObj)} + rowKey="id" + size={isMobile ? 'small' : 'middle'} + scroll={{ + x: isMobile ? 600 : 800, + y: isMobile ? 300 : 400 + }} + style={{ minWidth: isMobile ? 600 : 800 }} + tableLayout="auto" + /> + + + ); +}; + +export default FileTable; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/components/FileTable/index.tsx b/arthas-jfr-frontend/src/components/FileTable/index.tsx new file mode 100644 index 0000000000..2d87a86c35 --- /dev/null +++ b/arthas-jfr-frontend/src/components/FileTable/index.tsx @@ -0,0 +1,2 @@ +import FileTable from './FileTable'; +export default FileTable; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/components/FileUpload/FileUpload.tsx b/arthas-jfr-frontend/src/components/FileUpload/FileUpload.tsx new file mode 100644 index 0000000000..1f0991a02a --- /dev/null +++ b/arthas-jfr-frontend/src/components/FileUpload/FileUpload.tsx @@ -0,0 +1,103 @@ +// @ts-nocheck +// eslint-disable-next-line +import React, { useState, useRef } from 'react'; +import { Upload, message, Button, Progress } from 'antd'; +import { InboxOutlined, StopOutlined } from '@ant-design/icons'; +import { uploadFile } from '../../services/fileService'; +import { useFileContext } from '../../stores/FileContext'; + +const { Dragger } = Upload; + +const MAX_SIZE = 2 * 1024 * 1024 * 1024; // 2GB + +const FileUpload: React.FC<{ onUploadSuccess?: () => void }> = ({ onUploadSuccess }) => { + const { refreshFiles } = useFileContext(); + const [uploading, setUploading] = useState(false); + const [progress, setProgress] = useState(0); + const [fileList, setFileList] = useState([]); + const xhrRef = useRef(null); + + // 文件类型和大小校验 + const beforeUpload = (file: File) => { + if (!file.name.endsWith('.jfr')) { + message.error('只允许上传 .jfr 文件'); + return Upload.LIST_IGNORE; + } + if (file.size > MAX_SIZE) { + message.error('文件大小不能超过2GB'); + return Upload.LIST_IGNORE; + } + return true; + }; + + // 使用真实API上传 + const customRequest = async (options: any) => { + const { file, onSuccess, onError } = options; + setUploading(true); + setProgress(30); + try { + const res = await uploadFile(file, 'JFR'); + if (res.code === 1) { + setProgress(100); + // 立即刷新文件列表 + await refreshFiles(); + message.success('上传成功'); + onSuccess && onSuccess(); + onUploadSuccess && onUploadSuccess(); + + // 延迟重置上传状态 + setTimeout(() => { + setUploading(false); + setProgress(0); + setFileList([]); + }, 500); + } else { + throw new Error(res.msg || '上传失败'); + } + } catch (e) { + setUploading(false); + setProgress(0); + message.error(e.message || '上传失败'); + onError && onError(e); + } + }; + + // 取消上传(mock下直接重置) + const handleCancel = () => { + setUploading(false); + setProgress(0); + message.info('已取消上传'); + }; + + return ( +
+ setFileList(fileList)} + showUploadList={{ showRemoveIcon: !uploading }} + disabled={uploading} + accept=".jfr" + > +

+ +

+

点击或拖拽上传 .jfr 文件(最大2GB)

+

仅支持 .jfr 文件,上传过程中可取消

+
+ {uploading && ( +
+ + +
+ )} +
+ ); +}; + +export default FileUpload; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/components/FileUpload/index.tsx b/arthas-jfr-frontend/src/components/FileUpload/index.tsx new file mode 100644 index 0000000000..7764d0230d --- /dev/null +++ b/arthas-jfr-frontend/src/components/FileUpload/index.tsx @@ -0,0 +1,2 @@ +import FileUpload from './FileUpload'; +export default FileUpload; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/components/FlameGraph/FlameGraph.tsx b/arthas-jfr-frontend/src/components/FlameGraph/FlameGraph.tsx new file mode 100644 index 0000000000..2715f18547 --- /dev/null +++ b/arthas-jfr-frontend/src/components/FlameGraph/FlameGraph.tsx @@ -0,0 +1,573 @@ +// eslint-disable-next-line +import React, { useState, useImperativeHandle, forwardRef } from 'react'; +import { colorForName } from '../../utils/color'; +import { toReadableValue } from '../../utils/format'; + +// FlameGraph数据结构示例 +type FlameNode = { + name: string; + value: number; + children?: FlameNode[]; +}; + +interface FlameGraphProps { + data: FlameNode | null; + width?: number; + height?: number; + search?: string; + total?: number; + onZoomChange?: (zoomNode: FlameNode | null) => void; + dimension?: string; // 新增分析维度参数 +} + +const COLORS = [ + '#FFB74D', '#4FC3F7', '#81C784', '#BA68C8', '#E57373', '#FFD54F', '#A1887F', '#90A4AE', '#64B5F6', '#F06292', + '#537e8b', '#c12561', '#fec91b', '#3f7350', '#408118', '#3ea9da', '#9fb036', '#b671c1', '#faa938' +]; + +const BAR_HEIGHT = 32; +const BAR_GAP = 4; +const TEXT_PADDING = 8; +const MIN_TEXT_WIDTH = 60; // 最小文本显示宽度 + +// 截断文本函数 +function truncateText(text: string, maxWidth: number, fontSize: number = 12): string { + if (maxWidth <= MIN_TEXT_WIDTH) { + return ''; + } + + // 更精确的字符宽度估算 + const getCharWidth = (char: string) => { + // 中文字符、全角字符 + if (/[\u4e00-\u9fa5\u3000-\u303f\uff00-\uffef]/.test(char)) { + return 14; + } + // 数字和英文字符 + if (/[0-9a-zA-Z]/.test(char)) { + return 8; + } + // 其他字符 + return 6; + }; + + // 计算文本总宽度 + const textWidth = text.split('').reduce((width, char) => width + getCharWidth(char), 0); + const availableWidth = maxWidth - TEXT_PADDING * 2; + + if (textWidth <= availableWidth) { + return text; + } + + // 智能截断:优先保留方法名和类名 + const parts = text.split('.'); + if (parts.length >= 2) { + const className = parts[parts.length - 2]; + const methodName = parts[parts.length - 1]; + + // 如果只有类名和方法名,尝试显示完整的方法名 + if (parts.length === 2) { + const methodWidth = methodName.split('').reduce((width, char) => width + getCharWidth(char), 0); + if (methodWidth + 3 <= availableWidth) { // 3是省略号长度 + return `...${methodName}`; + } + } + + // 显示类名.方法名的形式 + const shortName = `${className}.${methodName}`; + const shortWidth = shortName.split('').reduce((width, char) => width + getCharWidth(char), 0); + if (shortWidth <= availableWidth) { + return shortName; + } + } + + // 通用截断逻辑 + let currentWidth = 0; + let truncatedText = ''; + const suffix = '...'; + const suffixWidth = 3 * 6; // 省略号宽度 + + for (let i = 0; i < text.length; i++) { + const charWidth = getCharWidth(text[i]); + if (currentWidth + charWidth + suffixWidth <= availableWidth) { + truncatedText += text[i]; + currentWidth += charWidth; + } else { + break; + } + } + + return truncatedText + suffix; +} + +// 获取方法名的简短版本 +function getShortMethodName(name: string): string { + // 如果是完整的类名+方法名,提取方法名 + if (name.includes('.')) { + const parts = name.split('.'); + if (parts.length >= 2) { + const methodName = parts[parts.length - 1]; + const className = parts[parts.length - 2]; + return `${className}.${methodName}`; + } + } + return name; +} + +// 格式化方法名用于工具提示显示 +function formatMethodName(name: string): string { + if (!name.includes('.')) { + return name; + } + + const parts = name.split('.'); + if (parts.length === 2) { + // 简单的类名.方法名格式 + return `${parts[0]}.${parts[1]}`; + } else if (parts.length > 2) { + // 复杂的包名.类名.方法名格式 + const className = parts[parts.length - 2]; + const methodName = parts[parts.length - 1]; + const packageName = parts.slice(0, -2).join('.'); + + // 如果包名太长,只显示最后一部分 + if (packageName.length > 30) { + const shortPackage = '...' + packageName.substring(packageName.length - 25); + return `${shortPackage}.${className}.${methodName}`; + } + + return `${packageName}.${className}.${methodName}`; + } + + return name; +} + +// 计算节点的总权重(包括所有子节点) +function calculateTotalWeight(node: FlameNode): number { + let total = node.value || 0; + if (node.children) { + for (const child of node.children) { + total += calculateTotalWeight(child); + } + } + return total; +} + +// 生成root节点的显示文本 +function generateRootText(node: FlameNode, totalValue: number, dimension: string = 'CPU Time'): string { + const totalWeight = calculateTotalWeight(node); + // return `Total ${dimension}: ${toReadableValue('ns', totalWeight)}`; + return `Total ${dimension}: ${toReadableValue('ns', node.value)}`; +} + +// 复制文本到剪贴板 +function copyToClipboard(text: string): void { + if (navigator.clipboard && window.isSecureContext) { + navigator.clipboard.writeText(text).catch(err => { + console.error('Failed to copy text: ', err); + }); + } else { + // 降级方案 + const textArea = document.createElement('textarea'); + textArea.value = text; + textArea.style.position = 'fixed'; + textArea.style.left = '-999999px'; + textArea.style.top = '-999999px'; + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + try { + document.execCommand('copy'); + } catch (err) { + console.error('Failed to copy text: ', err); + } + document.body.removeChild(textArea); + } +} + +function FlameRect({ node, x, y, width, height, depth, onHover, isActive, onClick, isZoomed, isHighlighted, isRoot, totalValue, dimension }: any) { + const displayText = width > MIN_TEXT_WIDTH ? truncateText(node.name, width) : ''; + const showText = displayText.length > 0; + + // 根据宽度调整字体大小 + const fontSize = width < 100 ? 10 : width < 150 ? 11 : 12; + + // 如果是root节点,显示总耗时 + const textToShow = isRoot ? generateRootText(node, totalValue, dimension) : displayText; + const showRootText = isRoot && width > MIN_TEXT_WIDTH; + + // 根据深度调整透明度,防止覆盖 + const opacity = isActive ? 1 : Math.max(0.7, 1 - depth * 0.05); + + // 处理键盘事件 + const handleKeyDown = (e: React.KeyboardEvent) => { + if ((e.ctrlKey || e.metaKey) && e.key === 'c') { + e.preventDefault(); + copyToClipboard(node.name); + // 可以添加一个临时的提示 + const originalText = e.currentTarget.textContent; + e.currentTarget.textContent = '已复制!'; + setTimeout(() => { + if (e.currentTarget) { + e.currentTarget.textContent = originalText; + } + }, 1000); + } + }; + + return ( + + { + e.preventDefault(); + e.stopPropagation(); + onHover(node, e, true); + }} + onMouseLeave={e => { + e.preventDefault(); + e.stopPropagation(); + onHover(node, e, false); + }} + onClick={e => { e.stopPropagation(); onClick(node); }} + onKeyDown={handleKeyDown} + tabIndex={0} + style={{ cursor: 'pointer' }} + /> + {(showText || showRootText) && ( + + {textToShow} + + )} + + ); +} + +function renderFlame(node: FlameNode, x: number, y: number, width: number, depth: number, total: number, onHover: any, activeNode: any, onClick: any, zoomNode: any, search: string, dimension: string, isRoot: boolean = false): any[] { + if (!node) return []; + const isHighlighted = search && node.name.toLowerCase().includes(search.toLowerCase()); + + // 为每个节点创建唯一的key + const nodeKey = `${node.name}-${x}-${y}-${depth}`; + + const rects = [ + + ]; + + if (node.children && node.children.length > 0) { + // 按照权重排序子节点,确保重要节点优先显示 + const sortedChildren = [...node.children].sort((a, b) => b.value - a.value); + + // 计算子节点的总权重 + const totalChildWeight = sortedChildren.reduce((sum, child) => sum + child.value, 0); + + if (totalChildWeight > 0) { + let childX = x; + const availableWidth = width; + + // 计算间隙 - 根据子节点数量动态调整 + const gapCount = sortedChildren.length - 1; + const minGap = 1; + const maxGap = Math.min(3, availableWidth * 0.02); // 最大间隙为可用宽度的2% + const gapWidth = gapCount > 0 ? Math.min(maxGap, Math.max(minGap, availableWidth / (sortedChildren.length * 10))) : 0; + + // 计算实际可用宽度(减去间隙) + const totalGap = gapCount * gapWidth; + const actualAvailableWidth = Math.max(availableWidth - totalGap, availableWidth * 0.8); // 确保至少80%的宽度可用 + + // 分配宽度给每个子节点 + let remainingWidth = actualAvailableWidth; + const childWidths = []; + + for (let i = 0; i < sortedChildren.length; i++) { + const child = sortedChildren[i]; + let childWidth = (child.value / totalChildWeight) * actualAvailableWidth; + + // 确保最小宽度 + const minWidth = Math.max(2, availableWidth / (sortedChildren.length * 2)); + childWidth = Math.max(childWidth, minWidth); + + // 确保不超过剩余空间 + childWidth = Math.min(childWidth, remainingWidth); + + childWidths.push(childWidth); + remainingWidth -= childWidth; + } + + // 渲染子节点 + for (let i = 0; i < sortedChildren.length; i++) { + const child = sortedChildren[i]; + const childWidth = childWidths[i]; + + if (childWidth > 0 && childX < x + availableWidth) { + rects.push(...renderFlame( + child, + childX, + y + BAR_HEIGHT + BAR_GAP, + childWidth, + depth + 1, + total, + onHover, + activeNode, + onClick, + zoomNode, + search, + dimension, + false + )); + childX += childWidth + gapWidth; + } + } + } + } + return rects; +} + +const FlameGraph = forwardRef<{ resetZoom: () => void }, FlameGraphProps>(({ data, width, height = 320, search = '', total, onZoomChange, dimension = 'CPU Time' }, ref) => { + const [hovered, setHovered] = useState(null); + const [tooltip, setTooltip] = useState<{ x: number; y: number; node: FlameNode } | null>(null); + const [zoomNode, setZoomNode] = useState(null); + const containerRef = React.useRef(null); + const [svgWidth, setSvgWidth] = useState(width || 900); + + React.useEffect(() => { + function updateWidth() { + if (containerRef.current) { + const containerWidth = containerRef.current.offsetWidth; + setSvgWidth(Math.max(containerWidth, 300)); // 最小宽度300px + } + } + updateWidth(); + window.addEventListener('resize', updateWidth); + return () => window.removeEventListener('resize', updateWidth); + }, []); + + // 当缩放状态改变时通知父组件 + React.useEffect(() => { + onZoomChange && onZoomChange(zoomNode); + }, [zoomNode, onZoomChange]); + + // 暴露重置方法给父组件 + React.useImperativeHandle(ref, () => ({ + resetZoom: () => setZoomNode(null) + })); + + // 添加全局键盘事件监听 + React.useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + if ((e.ctrlKey || e.metaKey) && e.key === 'c' && hovered) { + e.preventDefault(); + copyToClipboard(hovered.name); + // 显示复制成功提示 + const message = document.createElement('div'); + message.textContent = '已复制方法名到剪贴板'; + message.style.cssText = ` + position: fixed; + top: 20px; + right: 20px; + background: #52c41a; + color: white; + padding: 8px 16px; + border-radius: 4px; + z-index: 10000; + font-size: 14px; + box-shadow: 0 2px 8px rgba(0,0,0,0.2); + `; + document.body.appendChild(message); + setTimeout(() => { + document.body.removeChild(message); + }, 2000); + } + }; + + document.addEventListener('keydown', handleKeyDown); + return () => document.removeEventListener('keydown', handleKeyDown); + }, [hovered]); + + if (!data) { + return ( +
+ 暂无火焰图数据 +
+ ); + } + + // 计算最大深度 + function getDepth(node: FlameNode, d = 1): number { + if (!node.children || node.children.length === 0) return d; + return Math.max(...node.children.map(c => getDepth(c, d + 1))); + } + const maxDepth = getDepth(zoomNode || data); + const svgHeight = Math.max(maxDepth * (BAR_HEIGHT + BAR_GAP) + 40, 200); // 最小高度200px + + // 悬停事件 + const handleHover = (node: FlameNode, e: any, active: boolean) => { + console.log('Hover event:', { + nodeName: node.name, + active, + value: node.value, + x: e.clientX, + y: e.clientY, + target: e.target + }); + setHovered(active ? node : null); + if (active) { + setTooltip({ + x: e.clientX, + y: e.clientY, + node, + }); + } else { + setTooltip(null); + } + }; + + // 点击缩放 + const handleClick = (node: FlameNode) => { + setZoomNode(node); + }; + + // 双击重置 + const handleDoubleClick = (e: any) => { + setZoomNode(null); + }; + + // 计算总权重 + function getTotal(node: FlameNode): number { + return calculateTotalWeight(node); + } + const totalValue = total || getTotal(zoomNode || data); + + return ( +
+ + {renderFlame(zoomNode || data, 0, 20, svgWidth, 0, totalValue, handleHover, hovered, handleClick, zoomNode, search, dimension, true)} + + {tooltip && ( +
+
+ {tooltip.node.name === 'root' ? 'Total' : formatMethodName(tooltip.node.name)} +
+
+ 耗时/值: {toReadableValue('ns', tooltip.node.value)} +
+
+ 百分比: {((tooltip.node.value / totalValue) * 100).toFixed(2)}% +
+ {/*
+ 调试: {tooltip.node.name} (value: {tooltip.node.value}) +
*/} + {tooltip.node.children && ( +
+ 子节点: {tooltip.node.children.length} +
+ )} +
+ 💡 按 Ctrl+C 复制方法名 +
+
+ )} +
+ ); +}); + +export default FlameGraph; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/components/FlameGraph/index.tsx b/arthas-jfr-frontend/src/components/FlameGraph/index.tsx new file mode 100644 index 0000000000..74a8efbf54 --- /dev/null +++ b/arthas-jfr-frontend/src/components/FlameGraph/index.tsx @@ -0,0 +1,2 @@ +import FlameGraph from './FlameGraph'; +export default FlameGraph; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/global.less b/arthas-jfr-frontend/src/global.less new file mode 100644 index 0000000000..f6321dc34e --- /dev/null +++ b/arthas-jfr-frontend/src/global.less @@ -0,0 +1,5 @@ +body { + background: #f5f6fa; + margin: 0; + font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif; +} \ No newline at end of file diff --git a/arthas-jfr-frontend/src/hooks/useWindowSize.ts b/arthas-jfr-frontend/src/hooks/useWindowSize.ts new file mode 100644 index 0000000000..2c12c1b807 --- /dev/null +++ b/arthas-jfr-frontend/src/hooks/useWindowSize.ts @@ -0,0 +1,39 @@ +import { useState, useEffect } from 'react'; + +interface WindowSize { + width: number; + height: number; +} + +export const useWindowSize = () => { + const [windowSize, setWindowSize] = useState({ + width: window.innerWidth, + height: window.innerHeight, + }); + + useEffect(() => { + const handleResize = () => { + setWindowSize({ + width: window.innerWidth, + height: window.innerHeight, + }); + }; + + window.addEventListener('resize', handleResize); + return () => window.removeEventListener('resize', handleResize); + }, []); + + // 响应式断点 + const isMobile = windowSize.width < 768; + const isTablet = windowSize.width >= 768 && windowSize.width < 1024; + const isDesktop = windowSize.width >= 1024; + const isLargeDesktop = windowSize.width >= 1200; + + return { + ...windowSize, + isMobile, + isTablet, + isDesktop, + isLargeDesktop, + }; +}; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/layouts/BasicLayout.tsx b/arthas-jfr-frontend/src/layouts/BasicLayout.tsx new file mode 100644 index 0000000000..c556562ecf --- /dev/null +++ b/arthas-jfr-frontend/src/layouts/BasicLayout.tsx @@ -0,0 +1,75 @@ +// @ts-nocheck +// eslint-disable-next-line +import React from 'react'; +import { Layout, Menu, Avatar, Typography } from 'antd'; +import { UserOutlined, ClusterOutlined, HomeOutlined, BarChartOutlined } from '@ant-design/icons'; +import { useNavigate, useLocation } from 'react-router-dom'; +import { useFileContext } from '../stores/FileContext'; + +const { Header, Sider, Content } = Layout; +const { Text } = Typography; + +const BasicLayout: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const navigate = useNavigate(); + const location = useLocation(); + const { hasFiles, files } = useFileContext(); + + const handleMenuClick = ({ key }: { key: string }) => { + if (key === '/analysis') { + // 如果有文件,跳转到第一个文件的分析页面 + if (hasFiles && files.length > 0) { + navigate(`/analysis/${files[0].id}`); + } else { + // 如果没有文件,跳转到默认分析页面 + navigate('/analysis'); + } + } else { + navigate(key); + } + }; + + const menuItems = [ + { key: '/home', icon: , label: '文件管理' }, + { + key: '/analysis', + icon: , + label: '分析详情', + disabled: !hasFiles, + }, + ]; + + return ( + + +
+ JFR分析平台 +
+ + + +
+ {/*
+
+ 节点角色: + {role} +
+
+ } style={{ marginRight: 8 }} /> + {username} +
*/} +
+ + {children} + +
+ + ); +}; + +export default BasicLayout; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/main.tsx b/arthas-jfr-frontend/src/main.tsx new file mode 100644 index 0000000000..9d11046356 --- /dev/null +++ b/arthas-jfr-frontend/src/main.tsx @@ -0,0 +1,13 @@ +// @ts-nocheck +// eslint-disable-next-line +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; +import 'antd/dist/reset.css'; +import './global.less'; + +ReactDOM.createRoot(document.getElementById('root')).render( + + + +); \ No newline at end of file diff --git a/arthas-jfr-frontend/src/pages/Analysis/Analysis.tsx b/arthas-jfr-frontend/src/pages/Analysis/Analysis.tsx new file mode 100644 index 0000000000..8263259bc9 --- /dev/null +++ b/arthas-jfr-frontend/src/pages/Analysis/Analysis.tsx @@ -0,0 +1,231 @@ +// @ts-nocheck +// eslint-disable-next-line +import React, { useState, useEffect } from 'react'; +import { Card, Row, Col, Select, Input, Checkbox, Typography, Spin, message } from 'antd'; +import { useParams } from 'react-router-dom'; +import FlameGraph from '../../components/FlameGraph'; +import { getSupportedDimensions, analyzeJFRFileById } from '../../services/jfrService'; +import { formatFlamegraph } from '../../utils/formatFlamegraph'; +import { useFileContext } from '../../stores/FileContext'; + +const { Title } = Typography; + +const Analysis: React.FC = () => { + const { fileId } = useParams(); + const { files, hasFiles } = useFileContext(); + const [selectedFileId, setSelectedFileId] = useState(fileId); + const [dimension, setDimension] = useState(''); + const [dimensionOptions, setDimensionOptions] = useState([]); + const [unit, setUnit] = useState('ns'); + const [taskSearch, setTaskSearch] = useState(''); + const [allTasks, setAllTasks] = useState([]); + const [selectedTasks, setSelectedTasks] = useState([]); + const [include, setInclude] = useState(true); + const [flameData, setFlameData] = useState(null); + const [loading, setLoading] = useState(false); + const [search, setSearch] = useState(''); + const [isZoomed, setIsZoomed] = useState(false); + const flameGraphRef = React.useRef(null); + + // 文件选择逻辑:优先使用 URL 参数,否则选择第一个文件 + useEffect(() => { + if (files.length > 0) { + // 如果 URL 中有文件ID,检查该文件是否存在 + if (fileId) { + const file = files.find(f => f.id.toString() === fileId); + if (file) { + setSelectedFileId(fileId); + } else { + // 如果 URL 中的文件不存在,选择第一个文件 + setSelectedFileId(files[0].id.toString()); + } + } else { + // 如果 URL 中没有文件ID,选择第一个文件 + setSelectedFileId(files[0].id.toString()); + } + } else { + // 如果没有文件,清空选择 + setSelectedFileId(null); + } + }, [files, fileId]); + + // 加载维度元数据 + useEffect(() => { + if (!selectedFileId) return; + + // 检查选中的文件是否存在 + const file = files.find(f => f.id.toString() === selectedFileId); + if (!file) { + message.error('文件不存在'); + return; + } + + // 获取支持的分析维度 + getSupportedDimensions().then(dimRes => { + if (dimRes.code === 1 && dimRes.data) { + const dims = dimRes.data.map(d => ({ + label: d, + value: d, + unit: d === 'CPU' ? 'ns' : 'bytes' + })); + setDimensionOptions(dims); + if (dims.length > 0) { + setDimension(dims[0].value); + setUnit(dims[0].unit); + } + } + }).catch(e => message.error('获取分析维度失败: ' + e.message)); + }, [selectedFileId, files]); + + // 加载火焰图数据 + useEffect(() => { + if (!selectedFileId || !dimension) return; + setLoading(true); + + // 直接通过文件ID分析JFR文件 + analyzeJFRFileById( + selectedFileId, + dimension, + include, + selectedTasks.length > 0 ? selectedTasks : undefined + ).then(analysisRes => { + if (analysisRes.code === 1 && analysisRes.data) { + const { data, symbolTable, threadSplit } = analysisRes.data; + if (data && symbolTable) { + setFlameData(formatFlamegraph(data, symbolTable)); + } else { + setFlameData(null); + } + if (threadSplit) { + setAllTasks(Object.keys(threadSplit)); + } + } else { + setFlameData(null); + } + setLoading(false); + }).catch(e => { + setLoading(false); + message.error('分析失败: ' + e.message); + }); + }, [selectedFileId, dimension, include, selectedTasks]); + + // 任务筛选 + const filteredTasks = allTasks.filter(t => t.toLowerCase().includes(taskSearch.toLowerCase())); + + const fileOptions = files.map(file => ({ + label: file.originalName, + value: file.id.toString() + })); + + return ( +
+ JFR 分析详情 + +
+ + { + setDimension(v); + const found = dimensionOptions.find(d => d.value === v); + setUnit(found?.unit || 'ns'); + }} + disabled={!hasFiles || !selectedFileId} + /> + + + setTaskSearch(e.target.value)} + style={{ marginBottom: 8 }} + disabled={!hasFiles || !selectedFileId} + /> + setInclude(e.target.checked)} + style={{ marginBottom: 8 }} + disabled={!hasFiles || !selectedFileId} + > + 包含(Include) + + + + + setSearch(e.target.value)} + disabled={!hasFiles || !selectedFileId} + /> + + + + + 火焰图 + {isZoomed && ( + + )} + + } + variant="borderless" + > + + setIsZoomed(!!zoomNode)} + /> + + + + + + ); +}; + +export default Analysis; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/pages/Analysis/index.tsx b/arthas-jfr-frontend/src/pages/Analysis/index.tsx new file mode 100644 index 0000000000..18844fffc9 --- /dev/null +++ b/arthas-jfr-frontend/src/pages/Analysis/index.tsx @@ -0,0 +1,2 @@ +import Analysis from './Analysis'; +export default Analysis; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/pages/Home/Home.tsx b/arthas-jfr-frontend/src/pages/Home/Home.tsx new file mode 100644 index 0000000000..499eb7682d --- /dev/null +++ b/arthas-jfr-frontend/src/pages/Home/Home.tsx @@ -0,0 +1,84 @@ +// @ts-nocheck +// eslint-disable-next-line +// 由于项目初始化阶段,暂时关闭类型检查和eslint报错,后续完善依赖后移除。 +import React, { useState } from 'react'; +import { Card, Row, Col, Typography, Modal, Tooltip } from 'antd'; +import { UploadOutlined } from '@ant-design/icons'; +import FileUpload from '../../components/FileUpload'; +import FileTable from '../../components/FileTable'; +import { useWindowSize } from '../../hooks/useWindowSize'; + +const { Title } = Typography; + +const Home: React.FC = () => { + const { isMobile } = useWindowSize(); + const [uploadVisible, setUploadVisible] = useState(false); + + const handleUploadSuccess = () => { + setUploadVisible(false); + }; + + return ( +
+ + JFR 文件管理 + + +
+ + + 文件列表 + + + setUploadVisible(true)} + /> + + + } + bordered={false} + style={{ + borderRadius: 8, + boxShadow: '0 2px 8px rgba(0,0,0,0.1)' + }} + bodyStyle={{ + padding: isMobile ? 12 : 24 + }} + > + + + setUploadVisible(false)} + destroyOnClose + width={isMobile ? '90%' : 520} + centered + > + + + + + + ); +}; + +export default Home; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/pages/Home/index.tsx b/arthas-jfr-frontend/src/pages/Home/index.tsx new file mode 100644 index 0000000000..e9b1e00b24 --- /dev/null +++ b/arthas-jfr-frontend/src/pages/Home/index.tsx @@ -0,0 +1,33 @@ +// @ts-nocheck +// eslint-disable-next-line +// 由于项目初始化阶段,暂时关闭类型检查和eslint报错,后续完善依赖后移除。 +import React from 'react'; +import { Card, Row, Col, Typography } from 'antd'; +import Home from './Home'; + +const { Title } = Typography; + +const HomeComponent: React.FC = () => { + return ( +
+ JFR 文件管理 + +
+ + {/* 文件上传组件占位 */} +
[文件上传区域]
+
+ + + + {/* 文件列表组件占位 */} +
[文件列表区域]
+
+ + + + ); +}; + + +export default Home; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/services/api.ts b/arthas-jfr-frontend/src/services/api.ts new file mode 100644 index 0000000000..a3fbf1ce24 --- /dev/null +++ b/arthas-jfr-frontend/src/services/api.ts @@ -0,0 +1,35 @@ +import axios from 'axios'; + +// 创建axios实例 +const api = axios.create({ + baseURL: 'http://localhost:8200', + timeout: 30000, + headers: { + 'Content-Type': 'application/json', + }, +}); + +// 请求拦截器 +api.interceptors.request.use( + (config) => { + console.log('API Request:', config.method?.toUpperCase(), config.url); + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +// 响应拦截器 +api.interceptors.response.use( + (response) => { + console.log('API Response:', response.status, response.config.url); + return response; + }, + (error) => { + console.error('API Error:', error.response?.status, error.message); + return Promise.reject(error); + } +); + +export default api; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/services/fileService.ts b/arthas-jfr-frontend/src/services/fileService.ts new file mode 100644 index 0000000000..bfe9c73bb0 --- /dev/null +++ b/arthas-jfr-frontend/src/services/fileService.ts @@ -0,0 +1,76 @@ +import api from './api'; + +export interface FileView { + id: number; + uniqueName: string; + originalName: string; + size: number; + type: string; + createdTime: string; + status?: string; +} + +export interface PageView { + total: number; + page: number; + pageSize: number; + items: T[]; +} + +export interface FileUploadResponse { + code: number; + msg: string; + data: number; +} + +export interface FileListResponse { + code: number; + msg: string; + data: PageView; +} + +// 获取文件列表 +export async function getFiles(params: { + page?: number; + pageSize?: number; + type?: string; + search?: string; +}): Promise { + const response = await api.get('/files', { params }); + const raw = response.data; + // 兼容后端返回结构 + let items = raw.data?.items || raw.data?.data || []; + let total = raw.data?.total || raw.data?.totalSize || 0; + let page = raw.data?.page || 1; + let pageSize = raw.data?.pageSize || 10; + return { + code: raw.code, + msg: raw.msg, + data: { + items, + total, + page, + pageSize, + }, + }; +} + +// 上传文件 +export async function uploadFile(file: File, type: string = 'JFR'): Promise { + const formData = new FormData(); + formData.append('file', file); + formData.append('type', type); + + const response = await api.post('/files/upload', formData, { + headers: { + 'Content-Type': 'multipart/form-data', + }, + }); + return response.data; +} + +// 删除文件 +export async function deleteFile(fileId: number): Promise<{ code: number; msg: string }> { + const response = await api.delete(`/files/${fileId}`); + return response.data; +} \ No newline at end of file diff --git a/arthas-jfr-frontend/src/services/jfr.ts b/arthas-jfr-frontend/src/services/jfr.ts new file mode 100644 index 0000000000..5d977e2867 --- /dev/null +++ b/arthas-jfr-frontend/src/services/jfr.ts @@ -0,0 +1,38 @@ +// @ts-nocheck +// eslint-disable-next-line + +// 获取JFR文件分析维度元数据 +export async function fetchJfrMetadata(fileId) { + const body = { + namespace: 'jfr-file', + api: 'metadata', + target: fileId, + parameters: {} + }; + const res = await fetch('/arthas-api/analysis', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(body) + }); + const json = await res.json(); + if (json.code !== 1) throw new Error(json.msg || '元数据获取失败'); + return json; +} + +// 获取火焰图数据 +export async function fetchJfrFlameGraph({ fileId, dimension, include, taskSet }) { + const body = { + namespace: 'jfr-file', + api: 'flameGraph', + target: fileId, + parameters: { dimension, include, taskSet } + }; + const res = await fetch('/arthas-api/analysis', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(body) + }); + const json = await res.json(); + if (json.code !== 1) throw new Error(json.msg || '火焰图获取失败'); + return json; +} \ No newline at end of file diff --git a/arthas-jfr-frontend/src/services/jfrService.ts b/arthas-jfr-frontend/src/services/jfrService.ts new file mode 100644 index 0000000000..f566fc0f5f --- /dev/null +++ b/arthas-jfr-frontend/src/services/jfrService.ts @@ -0,0 +1,70 @@ +import api from './api'; + +export interface FlameGraph { + data: number[][]; + symbolTable: Record; + threadSplit: Record; +} + +export interface Metadata { + perfDimensions: string[]; +} + +export interface AnalysisRequest { + filePath: string; + dimension: string; + include?: boolean; + taskSet?: string[]; + options?: Record; +} + +export interface AnalysisResponse { + code: number; + msg: string; + data: FlameGraph; +} + +export interface MetadataResponse { + code: number; + msg: string; + data: Metadata; +} + +// 分析JFR文件并生成火焰图 +export async function analyzeJFRFile(request: AnalysisRequest): Promise { + const response = await api.post('/api/jfr/analyze', null, { params: request }); + return response.data; +} + +// 通过文件ID分析JFR文件并生成火焰图 +export async function analyzeJFRFileById( + fileId: string | number, + dimension: string, + include: boolean = true, + taskSet?: string[] +): Promise { + const params: any = { dimension, include }; + if (taskSet && taskSet.length > 0) { + params.taskSet = taskSet; + } + const response = await api.post(`/api/jfr/analyze/${fileId}`, null, { params }); + return response.data; +} + +// 获取分析元数据 +export async function getMetadata(): Promise { + const response = await api.get('/api/jfr/metadata'); + return response.data; +} + +// 验证JFR文件是否有效 +export async function validateJFRFile(filePath: string): Promise<{ code: number; msg: string; data: boolean }> { + const response = await api.get('/api/jfr/validate', { params: { filePath } }); + return response.data; +} + +// 获取支持的分析维度列表 +export async function getSupportedDimensions(): Promise<{ code: number; msg: string; data: string[] }> { + const response = await api.get('/api/jfr/dimensions'); + return response.data; +} \ No newline at end of file diff --git a/arthas-jfr-frontend/src/services/mock.ts b/arthas-jfr-frontend/src/services/mock.ts new file mode 100644 index 0000000000..3ed754637d --- /dev/null +++ b/arthas-jfr-frontend/src/services/mock.ts @@ -0,0 +1,144 @@ +// @ts-nocheck +// eslint-disable-next-line + +// mock 文件列表 +let fileList = Array.from({ length: 12 }).map((_, i) => ({ + id: `${1000 + i}`, + name: `sample_${i + 1}.jfr`, + type: 'jfr', + size: Math.round(Math.random() * 1024 * 1024 * 100) / (1024 * 1024), // MB + createTime: new Date(Date.now() - i * 3600 * 1000).toISOString(), + status: ['处理中', '分析完成', '失败'][i % 3], +})); + +export function getFiles({ page = 1, pageSize = 10, search = '', sorter = {} }) { + let data = fileList.filter(f => f.name.includes(search)); + if (sorter.field && sorter.order) { + data = [...data].sort((a, b) => { + if (sorter.order === 'ascend') return a[sorter.field] > b[sorter.field] ? 1 : -1; + return a[sorter.field] < b[sorter.field] ? 1 : -1; + }); + } + const total = data.length; + data = data.slice((page - 1) * pageSize, page * pageSize); + return Promise.resolve({ + code: 1, + msg: 'success', + data: { + total, + page, + pageSize, + items: data + } + }); +} + +export function uploadFile(file) { + // 简单模拟上传 + return new Promise((resolve) => { + setTimeout(() => { + const newFileId = Date.now(); + fileList.unshift({ + id: `${newFileId}`, + name: file.name, + type: 'jfr', + size: file.size / (1024 * 1024), + createTime: new Date().toISOString(), + status: '处理中', + }); + resolve({ + code: 1, + msg: 'success', + data: newFileId + }); + }, 1000); + }); +} + +export function deleteFile(id) { + fileList = fileList.filter(f => f.id !== id); + return Promise.resolve({ + code: 1, + msg: 'success' + }); +} + +export function getDimensions({ fileId }) { + // 模拟接口文档格式 + return Promise.resolve({ + code: 1, + msg: 'success', + data: { + perfDimensions: [ + { + key: 'CPU', + unit: 'ns', + filters: [ + { key: 'Thread' }, + { key: 'Class' }, + { key: 'Method' } + ] + }, + { + key: 'Allocation', + unit: 'bytes', + filters: [ + { key: 'Thread' }, + { key: 'Class' } + ] + } + ] + } + }); +} + +export function getTasks() { + return Promise.resolve(Array.from({ length: 20 }).map((_, i) => `Thread-${i + 1}`)); +} + +export function getFlameGraph({ fileId, dimension, include, taskSet }) { + // 模拟接口文档格式 + let data, symbolTable, threadSplit; + if (dimension === 'CPU') { + data = [ + [[0, 1, 2], 1000], + [[0, 1, 3], 500], + [[0, 4], 300] + ]; + symbolTable = { + 0: 'java.lang.Thread.run', + 1: 'com.example.Main.main', + 2: 'com.example.Service.process', + 3: 'com.example.Service.validate', + 4: 'com.example.Util.calculate' + }; + threadSplit = { main: 1500, 'worker-1': 300 }; + } else if (dimension === 'Allocation') { + data = [ + [[0, 5, 6], 800], + [[0, 5, 7], 400], + [[0, 8], 200] + ]; + symbolTable = { + 0: 'java.lang.Thread.run', + 5: 'com.example.Allocator.alloc', + 6: 'com.example.Buffer.create', + 7: 'com.example.Buffer.expand', + 8: 'com.example.Util.allocHelper' + }; + threadSplit = { main: 1200, 'worker-2': 200 }; + } else { + data = []; + symbolTable = {}; + threadSplit = {}; + } + return Promise.resolve({ + code: 1, + msg: 'success', + data: { + data, + symbolTable, + threadSplit + } + }); +} \ No newline at end of file diff --git a/arthas-jfr-frontend/src/stores/FileContext.tsx b/arthas-jfr-frontend/src/stores/FileContext.tsx new file mode 100644 index 0000000000..f596fe7dc1 --- /dev/null +++ b/arthas-jfr-frontend/src/stores/FileContext.tsx @@ -0,0 +1,67 @@ +import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react'; +import { getFiles } from '../services/fileService'; +import { FileView } from '../services/fileService'; + +interface FileContextType { + files: FileView[]; + hasFiles: boolean; + loading: boolean; + refreshFiles: () => Promise; +} + +const FileContext = createContext(undefined); + +export const useFileContext = () => { + const context = useContext(FileContext); + if (context === undefined) { + throw new Error('useFileContext must be used within a FileProvider'); + } + return context; +}; + +interface FileProviderProps { + children: ReactNode; +} + +export const FileProvider: React.FC = ({ children }) => { + const [files, setFiles] = useState([]); + const [loading, setLoading] = useState(false); + + const refreshFiles = async () => { + setLoading(true); + try { + const res = await getFiles({ page: 1, pageSize: 1000 }); + if (res.code === 1 && res.data && Array.isArray(res.data.items)) { + setFiles(res.data.items); + console.log('Files refreshed:', res.data.items.length, 'files'); + } else { + console.warn('Invalid response format:', res); + setFiles([]); + } + } catch (error) { + console.error('Failed to fetch files:', error); + setFiles([]); + } finally { + setLoading(false); + } + }; + + useEffect(() => { + refreshFiles(); + }, []); + + const hasFiles = files.length > 0; + + const value: FileContextType = { + files, + hasFiles, + loading, + refreshFiles, + }; + + return ( + + {children} + + ); +}; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/utils/color.ts b/arthas-jfr-frontend/src/utils/color.ts new file mode 100644 index 0000000000..f5b50042c8 --- /dev/null +++ b/arthas-jfr-frontend/src/utils/color.ts @@ -0,0 +1,15 @@ +// @ts-nocheck +// eslint-disable-next-line +export function hashCode(str) { + let hash = 0; + for (let i = 0; i < str.length; i++) { + hash = 31 * hash + (str.charCodeAt(i) & 0xff); + hash &= 0xffffffff; + } + return hash; +} + +export function colorForName(name, palette) { + const idx = Math.abs(hashCode(name)) % palette.length; + return palette[idx]; +} \ No newline at end of file diff --git a/arthas-jfr-frontend/src/utils/format.ts b/arthas-jfr-frontend/src/utils/format.ts new file mode 100644 index 0000000000..29c903fbce --- /dev/null +++ b/arthas-jfr-frontend/src/utils/format.ts @@ -0,0 +1,70 @@ +// @ts-nocheck +// eslint-disable-next-line +export function toReadableValue(unit: string, value: number) { + if (unit === 'ns') { + let result = ''; + const ns = value % 1000000; + value = Math.round(value / 1000000); + const ms = value % 1000; + if (ms > 0) result = ms + 'ms'; + value = Math.floor(value / 1000); + const s = value % 60; + if (s > 0) result = s + 's ' + result; + value = Math.floor(value / 60); + const m = value; + if (m > 0) result = m.toLocaleString() + 'm ' + result; + if (result.length === 0) { + if (ns > 0) return ns + 'ns'; + else return '0ms'; + } + return result; + } else if (unit === 'byte') { + let result = ''; + const bytes = value % 1024; + value = Math.round(value / 1024); + const kb = value % 1024; + if (kb > 0) result = kb + 'KB'; + value = Math.floor(value / 1024); + const mb = value % 1024; + if (mb > 0) result = mb + 'MB ' + result; + value = Math.floor(value / 1024); + const gb = value % 1024; + if (gb > 0) result = gb + 'GB ' + result; + value = Math.floor(value / 1024); + const tb = value; + if (tb > 0) result = tb + 'TB ' + result; + if (result.length === 0) { + if (bytes == 0) return '0B'; + else return bytes + 'bytes'; + } + return result; + } else { + return value.toLocaleString(); + } +} + +// 文件大小格式化函数 +export const formatFileSize = (bytes: number): string => { + if (bytes === 0) return '0 B'; + + const k = 1024; + const sizes = ['B', 'KB', 'MB', 'GB', 'TB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; +}; + +// 将字节转换为MB +export const bytesToMB = (bytes: number): number => { + return bytes / (1024 * 1024); +}; + +// 将字节转换为KB +export const bytesToKB = (bytes: number): number => { + return bytes / 1024; +}; + +// 将字节转换为GB +export const bytesToGB = (bytes: number): number => { + return bytes / (1024 * 1024 * 1024); +}; \ No newline at end of file diff --git a/arthas-jfr-frontend/src/utils/formatFlamegraph.ts b/arthas-jfr-frontend/src/utils/formatFlamegraph.ts new file mode 100644 index 0000000000..491db0d8b2 --- /dev/null +++ b/arthas-jfr-frontend/src/utils/formatFlamegraph.ts @@ -0,0 +1,27 @@ +// @ts-nocheck +// eslint-disable-next-line +/** + * 将JFR后端返回的line格式火焰图数据转换为树结构 + * @param {Array} data - 形如[[0,1,2], 100]的数组,表示栈帧路径和权重 + * @param {Object} symbolTable - {0: 'main', 1: 'foo', ...} + * @returns {Object} 递归树结构 { name, value, children } + */ +export function formatFlamegraph(data, symbolTable) { + const root = { name: 'root', value: 0, children: [] }; + for (const [stack, value] of data) { + let node = root; + node.value += value; + for (let i = 0; i < stack.length; i++) { + const frameId = stack[i]; + const frameName = symbolTable[frameId] || String(frameId); + let child = node.children.find(c => c.name === frameName); + if (!child) { + child = { name: frameName, value: 0, children: [] }; + node.children.push(child); + } + child.value += value; + node = child; + } + } + return root; +} \ No newline at end of file diff --git a/core/src/main/java/com/taobao/arthas/core/command/BuiltinCommandPack.java b/core/src/main/java/com/taobao/arthas/core/command/BuiltinCommandPack.java index 262793812e..b493039825 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/BuiltinCommandPack.java +++ b/core/src/main/java/com/taobao/arthas/core/command/BuiltinCommandPack.java @@ -66,6 +66,7 @@ private void initCommands(List disabledCommands) { commandClassList.add(ClassLoaderCommand.class); commandClassList.add(JadCommand.class); commandClassList.add(GetStaticCommand.class); + commandClassList.add(JFRansCommand.class); commandClassList.add(MonitorCommand.class); commandClassList.add(StackCommand.class); commandClassList.add(ThreadCommand.class); diff --git a/core/src/main/java/com/taobao/arthas/core/command/basic1000/JFRansCommand.java b/core/src/main/java/com/taobao/arthas/core/command/basic1000/JFRansCommand.java new file mode 100644 index 0000000000..5aeb8beb7a --- /dev/null +++ b/core/src/main/java/com/taobao/arthas/core/command/basic1000/JFRansCommand.java @@ -0,0 +1,92 @@ +package com.taobao.arthas.core.command.basic1000; + + +import com.taobao.arthas.core.shell.command.AnnotatedCommand; +import com.taobao.arthas.core.shell.command.CommandProcess; +import com.taobao.middleware.cli.annotations.Description; +import com.taobao.middleware.cli.annotations.Name; +import com.taobao.middleware.cli.annotations.Summary; + +import java.io.File; + +@Name("jfr-analyze") +@Summary("启动 JFR 分析服务") +@Description("运行一个 HTTP 服务用于 .jfr 文件上传和火焰图展示") +public class JFRansCommand extends AnnotatedCommand { + + private static volatile boolean isStarted = false; + + @Override + public void process(CommandProcess process) { + try { + if (isStarted) { + process.write("服务已运行,访问 http://localhost:8200\n"); + process.end(); + return; + } + + process.write("正在启动 JFR 分析服务...\n"); + + String jarPath = resolveJarPath(); + if (jarPath == null) { + process.write("✗ 未找到 arthas-jfr-backend 的 jar 包,请先执行:\n"); + process.write(" mvn clean install\n"); + process.write("并确保 jar 包位于 arthas-jfr-backend/target/ 目录下\n"); + process.end(); + return; + } + ProcessBuilder builder = new ProcessBuilder( + "java", "-jar", jarPath + ); + builder.inheritIO(); + builder.start(); + + isStarted = true; + process.write("✓ 服务启动成功!访问 http://localhost:8200\n"); + } catch (Exception e) { + process.write("✗ 启动失败: " + e.getMessage() + "\n"); + e.printStackTrace(); + } + + process.end(); + } + + private String resolveJarPath() { + try { + // 获取运行中的 jar 文件(arthas-core.jar) + File runningJar = new File(JFRansCommand.class.getProtectionDomain() + .getCodeSource().getLocation().toURI()); + + // 获取项目根目录(arthas-master):arthas-core.jar → arthas-bin → target → packaging → .. + File packagingDir = runningJar.getParentFile().getParentFile().getParentFile(); // packaging/ + File projectRoot = packagingDir.getParentFile(); // arthas-master/ + + // 查找 jfr-analyzer-backend/target/*.jar + File backendTargetDir = new File(projectRoot, "arthas-jfr-backend/target"); + if (!backendTargetDir.exists()) { + return null; + } + + File[] jars = backendTargetDir.listFiles((dir, name) -> + name.startsWith("arthas-jfr-backend") && name.endsWith(".jar") + ); + + if (jars != null && jars.length > 0) { + // 选最新的 + File latest = jars[0]; + for (File f : jars) { + if (f.lastModified() > latest.lastModified()) { + latest = f; + } + } + return latest.getAbsolutePath(); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + +} diff --git a/pom.xml b/pom.xml index d00be96a84..bab55d2036 100644 --- a/pom.xml +++ b/pom.xml @@ -64,6 +64,8 @@ arthas-vmtool tunnel-common tunnel-client + arthas-jfr-frontend + arthas-jfr-backend core agent client